

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>Button matrix (lv_btnmatrix) &mdash; LVGL  documentation</title>
  

  
  <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/css/fontawesome.min.css" type="text/css" />

  
  
    <link rel="shortcut icon" href="../../_static/favicon.png"/>
  

  
  

  
    <link rel="canonical" href="https://docs.lvgl.io/master/en/html/widgets/core/btnmatrix.html" />

  
  <!--[if lt IE 9]>
    <script src="../../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
        <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
        <script src="../../_static/jquery.js"></script>
        <script src="../../_static/underscore.js"></script>
        <script src="../../_static/doctools.js"></script>
    
    <script type="text/javascript" src="../../_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="../../genindex.html" />
    <link rel="search" title="Search" href="../../search.html" />
    <link rel="next" title="Canvas (lv_canvas)" href="canvas.html" />
    <link rel="prev" title="Button (lv_btn)" href="btn.html" />
 
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-78811084-3"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

	gtag('config', 'UA-78811084-3', { 'anonymize_ip': true });
</script>

</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="../../index.html">
          

          
            
            <img src="../../_static/logo_lvgl.png" class="logo" alt="Logo"/>
          
          </a>

          
            
            
              <div class="version">
                8.1
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../intro/index.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../intro/index.html#key-features">Key features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../intro/index.html#requirements">Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../intro/index.html#license">License</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../intro/index.html#repository-layout">Repository layout</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../intro/index.html#release-policy">Release policy</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#release-cycle">Release cycle</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#branches">Branches</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#changelog">Changelog</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#version-support">Version support</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../intro/index.html#faq">FAQ</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#where-can-i-ask-questions">Where can I ask questions?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#is-my-mcu-hardware-supported">Is my MCU/hardware supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#is-my-display-supported">Is my display supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#lvgl-doesn-t-start-randomly-crashes-or-nothing-is-drawn-on-the-display-what-can-be-the-problem">LVGL doesn't start, randomly crashes or nothing is drawn on the display. What can be the problem?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#my-display-driver-is-not-called-what-have-i-missed">My display driver is not called. What have I missed?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#why-is-the-display-driver-called-only-once-only-the-upper-part-of-the-display-is-refreshed">Why is the display driver called only once? Only the upper part of the display is refreshed.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#why-do-i-see-only-garbage-on-the-screen">Why do I see only garbage on the screen?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#why-do-i-see-nonsense-colors-on-the-screen">Why do I see nonsense colors on the screen?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#how-to-speed-up-my-ui">How to speed up my UI?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#how-to-reduce-flash-rom-usage">How to reduce flash/ROM usage?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#how-to-reduce-the-ram-usage">How to reduce the RAM usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../intro/index.html#how-to-work-with-an-operating-system">How to work with an operating system?</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../examples.html">Examples</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../examples.html#get-started">Get started</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#a-button-with-a-label-and-react-on-click-event">A button with a label and react on click event</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#create-styles-from-scratch-for-buttons">Create styles from scratch for buttons</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#create-a-slider-and-write-its-value-on-a-label">Create a slider and write its value on a label</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../examples.html#styles">Styles</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#size-styles">Size styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#background-styles">Background styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#border-styles">Border styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#outline-styles">Outline styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#shadow-styles">Shadow styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#image-styles">Image styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#text-styles">Text styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#line-styles">Line styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#transition">Transition</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#using-multiple-styles">Using multiple styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#local-styles">Local styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#add-styles-to-parts-and-states">Add styles to parts and states</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#extending-the-current-theme">Extending the current theme</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../examples.html#animations">Animations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#start-animation-on-an-event">Start animation on an event</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#playback-animation">Playback animation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#animation-timeline">Animation timeline</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../examples.html#events">Events</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#button-click-event">Button click event</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#handle-multiple-events">Handle multiple events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#event-bubbling">Event bubbling</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../examples.html#layouts">Layouts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#flex">Flex</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#a-simple-row-and-a-column-layout-with-flexbox">A simple row and a column layout with flexbox</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#arrange-items-in-rows-with-wrap-and-even-spacing">Arrange items in rows with wrap and even spacing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#demonstrate-flex-grow">Demonstrate flex grow</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#id1">Demonstrate flex grow.</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#demonstrate-column-and-row-gap-style-properties">Demonstrate column and row gap style properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#rtl-base-direction-changes-order-of-the-items">RTL base direction changes order of the items</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#grid">Grid</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#a-simple-grid">A simple grid</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#demonstrate-cell-placement-and-span">Demonstrate cell placement and span</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#demonstrate-grid-s-free-unit">Demonstrate grid's &quot;free unit&quot;</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#demonstrate-track-placement">Demonstrate track placement</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#demonstrate-column-and-row-gap">Demonstrate column and row gap</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#demonstrate-rtl-direction-on-grid">Demonstrate RTL direction on grid</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../examples.html#scrolling">Scrolling</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#nested-scrolling">Nested scrolling</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#snapping">Snapping</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#floating-button">Floating button</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#styling-the-scrollbars">Styling the scrollbars</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#right-to-left-scrolling">Right to left scrolling</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#translate-on-scroll">Translate on scroll</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../examples.html#widgets">Widgets</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#base-object">Base object</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#base-objects-with-custom-styles">Base objects with custom styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#make-an-object-draggable">Make an object draggable</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#arc">Arc</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-arc">Simple Arc</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#loader-with-arc">Loader with Arc</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#bar">Bar</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-bar">Simple Bar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#styling-a-bar">Styling a bar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#temperature-meter">Temperature meter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#stripe-pattern-and-range-value">Stripe pattern and range value</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#bar-with-ltr-and-rtl-base-direction">Bar with LTR and RTL base direction</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#custom-drawer-to-show-the-current-value">Custom drawer to show the current value</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#button">Button</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-buttons">Simple Buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#styling-buttons">Styling buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#gummy-button">Gummy button</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#button-matrix">Button matrix</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-button-matrix">Simple Button matrix</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#custom-buttons">Custom buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#pagination">Pagination</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#calendar">Calendar</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#calendar-with-header">Calendar with header</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#canvas">Canvas</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#drawing-on-the-canvas-and-rotate">Drawing on the Canvas and rotate</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#transparent-canvas-with-chroma-keying">Transparent Canvas with chroma keying</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#chart">Chart</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#line-chart">Line Chart</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#faded-area-line-chart-with-custom-division-lines">Faded area line chart with custom division lines</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#axis-ticks-and-labels-with-scrolling">Axis ticks and labels with scrolling</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#show-the-value-of-the-pressed-points">Show the value of the pressed points</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#display-1000-data-points-with-zooming-and-scrolling">Display 1000 data points with zooming and scrolling</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#show-cursor-on-the-clicked-point">Show cursor on the clicked point</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#scatter-chart">Scatter chart</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#stacked-area-chart">Stacked area chart</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#checkbox">Checkbox</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-checkboxes">Simple Checkboxes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#checkboxes-as-radio-buttons">Checkboxes as radio buttons</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#colorwheel">Colorwheel</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-colorwheel">Simple Colorwheel</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#dropdown">Dropdown</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-drop-down-list">Simple Drop down list</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#drop-down-in-four-directions">Drop down in four directions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#menu">Menu</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#image">Image</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#image-from-variable-and-symbol">Image from variable and symbol</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#image-recoloring">Image recoloring</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#rotate-and-zoom">Rotate and zoom</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#image-offset-and-styling">Image offset and styling</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#image-button">Image button</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-image-button">Simple Image button</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#keyboard">Keyboard</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#keyboard-with-text-area">Keyboard with text area</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#label">Label</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#line-wrap-recoloring-and-scrolling">Line wrap, recoloring and scrolling</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#text-shadow">Text shadow</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#show-ltr-rtl-and-chinese-texts">Show LTR, RTL and Chinese texts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#draw-label-with-gradient-color">Draw label with gradient color</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#led">LED</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#led-with-custom-style">LED with custom style</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#line">Line</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-line">Simple Line</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#list">List</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-list">Simple List</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#sorting-a-list-using-up-and-down-buttons">Sorting a List using up and down buttons</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#id2">Menu</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-menu">Simple Menu</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-menu-with-root-btn">Simple Menu with root btn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-menu-with-custom-header">Simple Menu with custom header</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-menu-with-floating-btn-to-add-new-menu-page">Simple Menu with floating btn to add new menu page</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#complex-menu">Complex Menu</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#meter">Meter</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-meter">Simple meter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#a-meter-with-multiple-arcs">A meter with multiple arcs</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#a-clock-from-a-meter">A clock from a meter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#pie-chart">Pie chart</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#message-box">Message box</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-message-box">Simple Message box</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#roller">Roller</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-roller">Simple Roller</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#styling-the-roller">Styling the roller</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#add-fade-mask-to-roller">add fade mask to roller</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#slider">Slider</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-slider">Simple Slider</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#slider-with-custom-style">Slider with custom style</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#slider-with-extended-drawer">Slider with extended drawer</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#span">Span</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#span-with-custom-styles">Span with custom styles</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#spinbox">Spinbox</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-spinbox">Simple Spinbox</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#spinner">Spinner</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-spinner">Simple spinner</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#switch">Switch</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-switch">Simple Switch</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#table">Table</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-table">Simple table</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#lightweighted-list-from-table">Lightweighted list from table</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#tabview">Tabview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-tabview">Simple Tabview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#tabs-on-the-left-styling-and-no-scrolling">Tabs on the left, styling and no scrolling</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#textarea">Textarea</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-text-area">Simple Text area</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#text-area-with-password-field">Text area with password field</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#text-auto-formatting">Text auto-formatting</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#id3">Tabview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#tileview-with-content">Tileview with content</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../examples.html#window">Window</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../examples.html#simple-window">Simple window</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../get-started/index.html">Get started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/quick-overview.html">Quick overview</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/quick-overview.html#get-started-in-a-simulator">Get started in a simulator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/quick-overview.html#add-lvgl-into-your-project">Add LVGL into your project</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/quick-overview.html#learn-the-basics">Learn the basics</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/quick-overview.html#widgets">Widgets</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/quick-overview.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/quick-overview.html#parts">Parts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/quick-overview.html#states">States</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/quick-overview.html#styles">Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/quick-overview.html#themes">Themes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/quick-overview.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/quick-overview.html#a-button-with-a-label-and-react-on-click-event">A button with a label and react on click event</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/quick-overview.html#create-styles-from-scratch-for-buttons">Create styles from scratch for buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/quick-overview.html#create-a-slider-and-write-its-value-on-a-label">Create a slider and write its value on a label</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/quick-overview.html#micropython">Micropython</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/pc-simulator.html">Simulator on PC</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/pc-simulator.html#select-an-ide">Select an IDE</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/pc-simulator.html#set-up-eclipse-cdt">Set-up Eclipse CDT</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/pc-simulator.html#install-eclipse-cdt">Install Eclipse CDT</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/pc-simulator.html#install-sdl-2">Install SDL 2</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/pc-simulator.html#pre-configured-project">Pre-configured project</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/pc-simulator.html#add-the-pre-configured-project-to-eclipse-cdt">Add the pre-configured project to Eclipse CDT</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/pc-simulator.html#compile-and-run">Compile and Run</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/stm32.html">STM32</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/nxp.html">NXP</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/nxp.html#creating-new-project-with-lvgl">Creating new project with LVGL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/nxp.html#adding-hw-acceleration-for-nxp-imx-rt-platforms-using-pxp-pixel-pipeline-engine-for-existing-projects">Adding HW acceleration for NXP iMX RT platforms using PXP (PiXel Pipeline) engine for existing projects</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nxp.html#features-supported">Features supported:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nxp.html#basic-configuration">Basic configuration:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nxp.html#basic-initialization">Basic initialization:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nxp.html#project-setup">Project setup:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nxp.html#advanced-configuration">Advanced configuration:</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/espressif.html">Espressif (ESP32 chip series)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/espressif.html#lvgl-demo-project-for-esp32">LVGL demo project for ESP32</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/espressif.html#using-lvgl-in-your-esp-idf-project">Using LVGL in your ESP-IDF project</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/espressif.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/espressif.html#obtaining-lvgl">Obtaining LVGL</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/espressif.html#configuration">Configuration</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/espressif.html#using-lvgl-esp32-drivers-in-esp-idf-project">Using lvgl_esp32_drivers in ESP-IDF project</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/arduino.html">Arduino</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/arduino.html#get-the-lvgl-arduino-library">Get the LVGL Arduino library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/arduino.html#set-up-drivers">Set up drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/arduino.html#configure-lvgl">Configure LVGL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/arduino.html#initialize-and-run-lvgl">Initialize and run LVGL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/arduino.html#use-the-examples-and-demos">Use the examples and demos</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/arduino.html#debugging-and-logging">Debugging and logging</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/micropython.html">Micropython</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/micropython.html#what-is-micropython">What is Micropython?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/micropython.html#highlights-of-micropython">Highlights of Micropython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/micropython.html#why-micropython-lvgl">Why Micropython + LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/micropython.html#here-are-some-advantages-of-using-lvgl-in-micropython">Here are some advantages of using LVGL in Micropython:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/micropython.html#micropython-lvgl-could-be-used-for">Micropython + LVGL could be used for:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/micropython.html#so-what-does-it-look-like">So what does it look like?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/micropython.html#a-simple-example">A simple example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/micropython.html#how-can-i-use-it">How can I use it?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/micropython.html#online-simulator">Online Simulator</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/micropython.html#pc-simulator">PC Simulator</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/micropython.html#embedded-platform">Embedded platform</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/micropython.html#where-can-i-find-more-information">Where can I find more information?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/tasmota-berry.html">Tasmota and berry</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/tasmota-berry.html#what-is-tasmota">What is Tasmota?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/tasmota-berry.html#what-is-berry">What is Berry?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/tasmota-berry.html#highlights-of-berry">Highlights of Berry</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/tasmota-berry.html#why-lvgl-tasmota-berry">Why LVGL + Tasmota + Berry?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/tasmota-berry.html#tasmota-berry-lvgl-could-be-used-for">Tasmota + Berry + LVGL could be used for:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/tasmota-berry.html#so-what-does-it-look-like">So what does it look like?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/tasmota-berry.html#a-simple-example">A simple example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/tasmota-berry.html#how-can-i-use-it">How can I use it?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/tasmota-berry.html#where-can-i-find-more-information">Where can I find more information?</a><ul>
<li class="toctree-l4"><a class="reference external" href="https://tasmota.github.io/docs/">Tasmota Documentation</a></li>
<li class="toctree-l4"><a class="reference external" href="https://github.com/berry-lang/berry/wiki/Reference">Berry Documentation</a></li>
<li class="toctree-l4"><a class="reference external" href="https://tasmota.github.io/docs/LVGL/">Tasmota LVGL Berry documentation</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/nuttx.html">NuttX RTOS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/nuttx.html#what-is-nuttx">What is NuttX?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nuttx.html#highlights-of-nuttx">Highlights of NuttX</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/nuttx.html#why-nuttx-lvgl">Why NuttX + LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nuttx.html#here-are-some-advantages-of-using-lvgl-in-nuttx">Here are some advantages of using LVGL in NuttX</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nuttx.html#nuttx-lvgl-could-be-used-for">NuttX + LVGL could be used for</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/nuttx.html#how-to-get-started-with-nuttx-and-lvgl">How to get started with NuttX and LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nuttx.html#first-you-need-to-install-the-pre-requisites-on-your-system">First you need to install the pre-requisites on your system</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nuttx.html#now-let-s-create-a-workspace-to-save-our-files">Now let's create a workspace to save our files</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nuttx.html#clone-the-nuttx-and-apps-repositories">Clone the NuttX and Apps repositories:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nuttx.html#configure-nuttx-to-use-the-stm32f429i-disco-board-and-the-lvgl-demo">Configure NuttX to use the stm32f429i-disco board and the LVGL Demo</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/nuttx.html#flashing-the-firmware-in-the-board-using-openocd">Flashing the firmware in the board using OpenOCD:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/nuttx.html#where-can-i-find-more-information">Where can I find more information?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/rt-thread.html">RT-Thread RTOS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/rt-thread.html#what-is-rt-thread">What is RT-Thread?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/rt-thread.html#how-to-run-lvgl-on-rt-thread">How to run LVGL on RT-Thread?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/cmake.html">CMake</a><ul>
<li class="toctree-l3"><a class="reference external" href="https://docs.espressif.com/projects/esp-idf/en/v3.3/get-started-cmake/index.html">Espressif (ESP32)</a></li>
<li class="toctree-l3"><a class="reference external" href="https://docs.micropython.org/en/v1.15/develop/cmodules.html">MicroPython</a></li>
<li class="toctree-l3"><a class="reference external" href="https://docs.zephyrproject.org/latest/guides/zephyr_cmake_package.html">Zephyr</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/cmake.html#prerequisites">Prerequisites</a><ul>
<li class="toctree-l4"><a class="reference external" href="https://www.gnu.org/software/make/">Make</a></li>
<li class="toctree-l4"><a class="reference external" href="https://ninja-build.org/">Ninja</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/cmake.html#building-lvgl-with-cmake">Building LVGL with CMake</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/cmake.html#additional-cmake-options">Additional CMake options</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/cmake.html#building-lvgl-examples-with-cmake">Building LVGL examples with CMake</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/cmake.html#building-lvgl-drivers-and-demos-with-cmake">Building LVGL drivers and demos with CMake</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../porting/index.html">Porting</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../porting/project.html">Set up a project</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../porting/project.html#get-the-library">Get the library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/project.html#add-lvgl-to-your-project">Add lvgl to your project</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../porting/project.html#automatically-add-files">Automatically add files</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/project.html#make-and-cmake">Make and CMake</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/project.html#other-platforms-and-tools">Other platforms and tools</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/project.html#demos-and-examples">Demos and Examples</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/project.html#configuration-file">Configuration file</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/project.html#initialization">Initialization</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../porting/display.html">Display interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../porting/display.html#draw-buffer">Draw buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/display.html#buffering-modes">Buffering modes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../porting/display.html#one-buffer">One buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/display.html#two-buffers">Two buffers</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/display.html#full-refresh">Full refresh</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/display.html#direct-mode">Direct mode</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/display.html#display-driver">Display driver</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../porting/display.html#mandatory-fields">Mandatory fields</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/display.html#optional-fields">Optional fields</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/display.html#examples">Examples</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/display.html#rotation">Rotation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/display.html#further-reading">Further reading</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/display.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../porting/indev.html">Input device interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../porting/indev.html#types-of-input-devices">Types of input devices</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../porting/indev.html#touchpad-mouse-or-any-pointer">Touchpad, mouse or any pointer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/indev.html#keypad-or-keyboard">Keypad or keyboard</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/indev.html#encoder">Encoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/indev.html#button">Button</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/indev.html#other-features">Other features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../porting/indev.html#parameters">Parameters</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/indev.html#feedback">Feedback</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/indev.html#associating-with-a-display">Associating with a display</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/indev.html#buffered-reading">Buffered reading</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/indev.html#further-reading">Further reading</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/indev.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../porting/tick.html">Tick interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../porting/tick.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../porting/task-handler.html">Task Handler</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../porting/sleep.html">Sleep management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../porting/os.html">Operating system and interrupts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../porting/os.html#tasks-and-threads">Tasks and threads</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/os.html#interrupts">Interrupts</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../porting/log.html">Logging</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../porting/log.html#log-level">Log level</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/log.html#printing-logs">Printing logs</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../porting/log.html#logging-with-printf">Logging with printf</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/log.html#custom-log-function">Custom log function</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/log.html#add-logs">Add logs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../porting/gpu.html">Add custom GPU</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../porting/gpu.html#draw-context">Draw context</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../porting/gpu.html#fields">Fields</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/gpu.html#initialization">Initialization</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/gpu.html#software-renderer">Software renderer</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../porting/gpu.html#blend-callback">Blend callback</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/gpu.html#extend-the-software-renderer">Extend the software renderer</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../porting/gpu.html#new-blend-callback">New blend callback</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../porting/gpu.html#new-rectangle-drawer">New rectangle drawer</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../porting/gpu.html#fully-custom-draw-engine">Fully custom draw engine</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../overview/index.html">Overview</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../overview/object.html">Objects</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/object.html#attributes">Attributes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#basic-attributes">Basic attributes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#specific-attributes">Specific attributes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/object.html#working-mechanisms">Working mechanisms</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#parent-child-structure">Parent-child structure</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#moving-together">Moving together</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#visibility-only-on-the-parent">Visibility only on the parent</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#create-and-delete-objects">Create and delete objects</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/object.html#screens">Screens</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#create-screens">Create screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#get-the-active-screen">Get the active screen</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#load-screens">Load screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#layers">Layers</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/object.html#handling-multiple-displays">Handling multiple displays</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/object.html#parts">Parts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/object.html#states">States</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/object.html#snapshot">Snapshot</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/coords.html">Positions, sizes, and layouts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/coords.html#overview">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#units">Units</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#boxing-model">Boxing model</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#important-notes">Important notes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/coords.html#position">Position</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#simple-way">Simple way</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#align">Align</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/coords.html#size">Size</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#id1">Simple way</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/coords.html#using-styles">Using styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/coords.html#translation">Translation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/coords.html#transformation">Transformation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#min-and-max-size">Min and Max size</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/coords.html#layout">Layout</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#id2">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#built-in-layout">Built-in layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#flags">Flags</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/coords.html#adding-new-layouts">Adding new layouts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/coords.html#examples">Examples</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/style.html">Styles</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#states">States</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#cascading-styles">Cascading styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#inheritance">Inheritance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#parts">Parts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#initialize-styles-and-set-get-properties">Initialize styles and set/get properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#add-and-remove-styles-to-a-widget">Add and remove styles to a widget</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#add-styles">Add styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#remove-styles">Remove styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#report-style-changes">Report style changes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#get-a-property-s-value-on-an-object">Get a property's value on an object</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#local-styles">Local styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#properties">Properties</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#typical-background-properties">Typical background properties</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#transitions">Transitions</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#color-filter">Color filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#themes">Themes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#extending-themes">Extending themes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#size-styles">Size styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#background-styles">Background styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#border-styles">Border styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#outline-styles">Outline styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#shadow-styles">Shadow styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#image-styles">Image styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#arc-styles">Arc styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#text-styles">Text styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#line-styles">Line styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#transition">Transition</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#using-multiple-styles">Using multiple styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#id1">Local styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#add-styles-to-parts-and-states">Add styles to parts and states</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style.html#extending-the-current-theme">Extending the current theme</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/style-props.html">Style properties</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#size-and-position">Size and position</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#width">width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#min-width">min_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#max-width">max_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#height">height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#min-height">min_height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#max-height">max_height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#x">x</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#y">y</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#align">align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#transform-width">transform_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#transform-height">transform_height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#translate-x">translate_x</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#translate-y">translate_y</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#transform-zoom">transform_zoom</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#transform-angle">transform_angle</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#padding">Padding</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#pad-top">pad_top</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#pad-bottom">pad_bottom</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#pad-left">pad_left</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#pad-right">pad_right</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#pad-row">pad_row</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#pad-column">pad_column</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#background">Background</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-color">bg_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-opa">bg_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-grad-color">bg_grad_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-grad-dir">bg_grad_dir</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-main-stop">bg_main_stop</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-grad-stop">bg_grad_stop</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-grad">bg_grad</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-dither-mode">bg_dither_mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-img-src">bg_img_src</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-img-opa">bg_img_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-img-recolor">bg_img_recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-img-recolor-opa">bg_img_recolor_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#bg-img-tiled">bg_img_tiled</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#border">Border</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#border-color">border_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#border-opa">border_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#border-width">border_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#border-side">border_side</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#border-post">border_post</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#outline">Outline</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#outline-width">outline_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#outline-color">outline_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#outline-opa">outline_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#outline-pad">outline_pad</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#shadow">Shadow</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#shadow-width">shadow_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#shadow-ofs-x">shadow_ofs_x</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#shadow-ofs-y">shadow_ofs_y</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#shadow-spread">shadow_spread</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#shadow-color">shadow_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#shadow-opa">shadow_opa</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#image">Image</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#img-opa">img_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#img-recolor">img_recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#img-recolor-opa">img_recolor_opa</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#line">Line</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#line-width">line_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#line-dash-width">line_dash_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#line-dash-gap">line_dash_gap</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#line-rounded">line_rounded</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#line-color">line_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#line-opa">line_opa</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#arc">Arc</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#arc-width">arc_width</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#arc-rounded">arc_rounded</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#arc-color">arc_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#arc-opa">arc_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#arc-img-src">arc_img_src</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#text">Text</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#text-color">text_color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#text-opa">text_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#text-font">text_font</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#text-letter-space">text_letter_space</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#text-line-space">text_line_space</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#text-decor">text_decor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#text-align">text_align</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/style-props.html#miscellaneous">Miscellaneous</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#radius">radius</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#clip-corner">clip_corner</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#opa">opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#color-filter-dsc">color_filter_dsc</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#color-filter-opa">color_filter_opa</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#anim-time">anim_time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#anim-speed">anim_speed</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#transition">transition</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#blend-mode">blend_mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#layout">layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/style-props.html#base-dir">base_dir</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/scroll.html">Scroll</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/scroll.html#overview">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#scrollbar">Scrollbar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#events">Events</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/scroll.html#basic-example">Basic example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/scroll.html#features-of-scrolling">Features of scrolling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#scrollable">Scrollable</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#scroll-chain">Scroll chain</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#scroll-momentum">Scroll momentum</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#elastic-scroll">Elastic scroll</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#snapping">Snapping</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#scroll-one">Scroll one</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#scroll-on-focus">Scroll on focus</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/scroll.html#scroll-manually">Scroll manually</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/scroll.html#self-size">Self size</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/scroll.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#nested-scrolling">Nested scrolling</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#id1">Snapping</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#floating-button">Floating button</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#styling-the-scrollbars">Styling the scrollbars</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#right-to-left-scrolling">Right to left scrolling</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/scroll.html#translate-on-scroll">Translate on scroll</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/layer.html">Layers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/layer.html#order-of-creation">Order of creation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/layer.html#bring-to-the-foreground">Bring to the foreground</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/layer.html#top-and-sys-layers">Top and sys layers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/event.html">Events</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/event.html#add-events-to-the-object">Add events to the object</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/event.html#remove-event-s-from-an-object">Remove event(s) from an object</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/event.html#event-codes">Event codes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/event.html#input-device-events">Input device events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/event.html#drawing-events">Drawing events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/event.html#other-events">Other events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/event.html#special-events">Special events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/event.html#custom-events">Custom events</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/event.html#sending-events">Sending events</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/event.html#refresh-event">Refresh event</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/event.html#fields-of-lv-event-t">Fields of lv_event_t</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/event.html#event-bubbling">Event bubbling</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/event.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/event.html#button-click-event">Button click event</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/event.html#handle-multiple-events">Handle multiple events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/event.html#id1">Event bubbling</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/indev.html">Input devices</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/indev.html#pointers">Pointers</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/indev.html#cursor">Cursor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/indev.html#gestures">Gestures</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/indev.html#keypad-and-encoder">Keypad and encoder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/indev.html#groups">Groups</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/indev.html#styling">Styling</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/indev.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/indev.html#input-device">Input device</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/indev.html#id1">Groups</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/display.html">Displays</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/display.html#multiple-display-support">Multiple display support</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/display.html#using-only-one-display">Using only one display</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/display.html#mirror-display">Mirror display</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/display.html#split-image">Split image</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/display.html#screens">Screens</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/display.html#transparent-screens">Transparent screens</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/display.html#features-of-displays">Features of displays</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/display.html#inactivity">Inactivity</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/display.html#background">Background</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/display.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/color.html">Colors</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/color.html#creating-colors">Creating colors</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/color.html#rgb">RGB</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/color.html#hsv">HSV</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/color.html#palette">Palette</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/color.html#modify-and-mix-colors">Modify and mix colors</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/color.html#built-in-colors">Built-in colors</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/color.html#opacity">Opacity</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/color.html#color-types">Color types</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/color.html#convert-color">Convert color</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/color.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/font.html">Fonts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/font.html#unicode-support">Unicode support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/font.html#built-in-fonts">Built-in fonts</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/font.html#normal-fonts">Normal fonts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/font.html#special-fonts">Special fonts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/font.html#special-features">Special features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/font.html#bidirectional-support">Bidirectional support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/font.html#arabic-and-persian-support">Arabic and Persian support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/font.html#subpixel-rendering">Subpixel rendering</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/font.html#compressed-fonts">Compressed fonts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/font.html#add-a-new-font">Add a new font</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/font.html#add-new-symbols">Add new symbols</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/font.html#load-a-font-at-run-time">Load a font at run-time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/font.html#add-a-new-font-engine">Add a new font engine</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/font.html#use-font-fallback">Use font fallback</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/image.html">Images</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/image.html#store-images">Store images</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#variables">Variables</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#files">Files</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/image.html#color-formats">Color formats</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/image.html#add-and-use-images">Add and use images</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#online-converter">Online converter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#manually-create-an-image">Manually create an image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#use-images">Use images</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/image.html#image-decoder">Image decoder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#custom-image-formats">Custom image formats</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#register-an-image-decoder">Register an image decoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#manually-use-an-image-decoder">Manually use an image decoder</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/image.html#image-caching">Image caching</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#cache-size">Cache size</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#value-of-images">Value of images</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#memory-usage">Memory usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#clean-the-cache">Clean the cache</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/image.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/image.html#image-buffer">Image buffer</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/file-system.html">File system</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/file-system.html#ready-to-use-drivers">Ready to use drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/file-system.html#adding-a-driver">Adding a driver</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/file-system.html#registering-a-driver">Registering a driver</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/file-system.html#implementing-the-callbacks">Implementing the callbacks</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/file-system.html#other-callbacks">Other callbacks</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/file-system.html#usage-example">Usage example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/file-system.html#use-drives-for-images">Use drives for images</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/file-system.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/animation.html">Animations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/animation.html#create-an-animation">Create an animation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/animation.html#animation-path">Animation path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/animation.html#speed-vs-time">Speed vs time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/animation.html#delete-animations">Delete animations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/animation.html#timeline">Timeline</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/animation.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/animation.html#start-animation-on-an-event">Start animation on an event</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/animation.html#playback-animation">Playback animation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/animation.html#animation-timeline">Animation timeline</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/animation.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/timer.html">Timers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/timer.html#create-a-timer">Create a timer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/timer.html#ready-and-reset">Ready and Reset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/timer.html#set-parameters">Set parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/timer.html#repeat-count">Repeat count</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/timer.html#measure-idle-time">Measure idle time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/timer.html#asynchronous-calls">Asynchronous calls</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/timer.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/drawing.html">Drawing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../overview/drawing.html#mechanism-of-screen-refreshing">Mechanism of screen refreshing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/drawing.html#masking">Masking</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/drawing.html#using-masks">Using masks</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../overview/drawing.html#hook-drawing">Hook drawing</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../overview/drawing.html#main-drawing">Main drawing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/drawing.html#post-drawing">Post drawing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/drawing.html#part-drawing">Part drawing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../overview/drawing.html#others">Others</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../overview/new_widget.html">New widget</a></li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Widgets</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../obj.html">Base object (lv_obj)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../obj.html#overview">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#coordinates">Coordinates</a></li>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#parents-and-children">Parents and children</a></li>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#display-and-screens">Display and Screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#styles">Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#flags">Flags</a></li>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#groups">Groups</a></li>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#extended-click-area">Extended click area</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../obj.html#id1">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../obj.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../obj.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#base-objects-with-custom-styles">Base objects with custom styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../obj.html#make-an-object-draggable">Make an object draggable</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../obj.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2 current"><a class="reference internal" href="index.html">Core widgets</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="arc.html">Arc (lv_arc)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="arc.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="arc.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="arc.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="arc.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="arc.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="arc.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="arc.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="bar.html">Bar (lv_bar)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="bar.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="bar.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="bar.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="bar.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="bar.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="bar.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="bar.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="btn.html">Button (lv_btn)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="btn.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="btn.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="btn.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="btn.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="btn.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="btn.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="btn.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Button matrix (lv_btnmatrix)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="canvas.html">Canvas (lv_canvas)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="canvas.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="canvas.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="canvas.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="canvas.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="canvas.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="canvas.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="canvas.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="checkbox.html">Checkbox (lv_checkbox)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="checkbox.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="checkbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="checkbox.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="checkbox.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="checkbox.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="checkbox.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="checkbox.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="dropdown.html">Drop-down list (lv_dropdown)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="dropdown.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="dropdown.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="dropdown.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="dropdown.html#id1">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="dropdown.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="dropdown.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="dropdown.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="dropdown.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="img.html">Image (lv_img)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="img.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="img.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="img.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="img.html#transformations">Transformations</a></li>
<li class="toctree-l4"><a class="reference internal" href="img.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="img.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="img.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="img.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="label.html">Label (lv_label)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="label.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="label.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="label.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="label.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="label.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="label.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="label.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="line.html">Line (lv_line)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="line.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="line.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="line.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="line.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="line.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="line.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="line.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="roller.html">Roller (lv_roller)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="roller.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="roller.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="roller.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="roller.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="roller.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="roller.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="roller.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="slider.html">Slider (lv_slider)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="slider.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="slider.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="slider.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="slider.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="slider.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="slider.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="slider.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="switch.html">Switch (lv_switch)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="switch.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="switch.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="switch.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="switch.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="switch.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="switch.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="switch.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="table.html">Table (lv_table)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="table.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="table.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="table.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="table.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="table.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="table.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="table.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="textarea.html">Text area (lv_textarea)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="textarea.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="textarea.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="textarea.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="textarea.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="textarea.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="textarea.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="textarea.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../extra/index.html">Extra widgets</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../extra/animimg.html">Animation Image (lv_animimg)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/animimg.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/animimg.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/animimg.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/animimg.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/animimg.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/animimg.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/animimg.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/calendar.html">Calendar (lv_calendar)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/calendar.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/calendar.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/calendar.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/calendar.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/calendar.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/calendar.html#headers">Headers</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/calendar.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/calendar.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/chart.html">Chart (lv_chart)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/chart.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/chart.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/chart.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/chart.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/chart.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/chart.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/chart.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/colorwheel.html">Color wheel (lv_colorwheel)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/colorwheel.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/colorwheel.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/colorwheel.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/colorwheel.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/colorwheel.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/colorwheel.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/colorwheel.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/imgbtn.html">Image button (lv_imgbtn)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/imgbtn.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/imgbtn.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/imgbtn.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/imgbtn.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/imgbtn.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/imgbtn.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/imgbtn.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/keyboard.html">Keyboard (lv_keyboard)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/keyboard.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/keyboard.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/keyboard.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/keyboard.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/keyboard.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/keyboard.html#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/keyboard.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/led.html">LED (lv_led)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/led.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/led.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/led.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/led.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/led.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/led.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/led.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/list.html">List (lv_list)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/list.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/list.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/list.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/list.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/list.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/list.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/list.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/menu.html">Menu (lv_menu)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/menu.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/menu.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/menu.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/menu.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/menu.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/menu.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/menu.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/meter.html">Meter (lv_meter)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/meter.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/meter.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/meter.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/meter.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/meter.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/meter.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/meter.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/msgbox.html">Message box (lv_msgbox)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/msgbox.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/msgbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/msgbox.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/msgbox.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/msgbox.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/msgbox.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/msgbox.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/span.html">Span (lv_span)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/span.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/span.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/span.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/span.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/span.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/span.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/span.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/spinbox.html">Spinbox (lv_spinbox)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinbox.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinbox.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinbox.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinbox.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinbox.html#api">API</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinbox.html#id1">Example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/spinner.html">Spinner (lv_spinner)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinner.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinner.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinner.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinner.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinner.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinner.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/spinner.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/tabview.html">Tabview (lv_tabview)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/tabview.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tabview.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tabview.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tabview.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tabview.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tabview.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tabview.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/tileview.html">Tile view (lv_tileview)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/tileview.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tileview.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tileview.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tileview.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tileview.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tileview.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/tileview.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../extra/win.html">Window (lv_win)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../extra/win.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/win.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/win.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/win.html#get-the-parts">Get the parts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/win.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/win.html#keys">Keys</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/win.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../extra/win.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../layouts/index.html">Layouts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../layouts/flex.html">Flex</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/flex.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/flex.html#terms">Terms</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/flex.html#simple-interface">Simple interface</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#flex-flow">Flex flow</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#flex-align">Flex align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#flex-grow">Flex grow</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/flex.html#style-interface">Style interface</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#internal-padding">Internal padding</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/flex.html#other-features">Other features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#rtl">RTL</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#new-track">New track</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/flex.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#a-simple-row-and-a-column-layout-with-flexbox">A simple row and a column layout with flexbox</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#arrange-items-in-rows-with-wrap-and-even-spacing">Arrange items in rows with wrap and even spacing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#demonstrate-flex-grow">Demonstrate flex grow</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#id1">Demonstrate flex grow.</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#demonstrate-column-and-row-gap-style-properties">Demonstrate column and row gap style properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/flex.html#rtl-base-direction-changes-order-of-the-items">RTL base direction changes order of the items</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/flex.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../layouts/grid.html">Grid</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/grid.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/grid.html#terms">Terms</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/grid.html#simple-interface">Simple interface</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#grid-descriptors">Grid descriptors</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#grid-items">Grid items</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#grid-align">Grid align</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/grid.html#style-interface">Style interface</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#internal-padding">Internal padding</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/grid.html#other-features">Other features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#rtl">RTL</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/grid.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#a-simple-grid">A simple grid</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#demonstrate-cell-placement-and-span">Demonstrate cell placement and span</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#demonstrate-grid-s-free-unit">Demonstrate grid's &quot;free unit&quot;</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#demonstrate-track-placement">Demonstrate track placement</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#demonstrate-column-and-row-gap">Demonstrate column and row gap</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../layouts/grid.html#demonstrate-rtl-direction-on-grid">Demonstrate RTL direction on grid</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../layouts/grid.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../libs/index.html">3rd party libraries</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../libs/fsdrv.html">File System Interfaces</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../libs/fsdrv.html#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../libs/bmp.html">BMP decoder</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../libs/bmp.html#limitations">Limitations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/bmp.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/bmp.html#open-a-bmp-image-from-file">Open a BMP image from file</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/bmp.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../libs/sjpg.html">JPG decoder</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../libs/sjpg.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/sjpg.html#usage">Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/sjpg.html#converter">Converter</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/sjpg.html#converting-jpg-to-c-array">Converting JPG to C array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../libs/sjpg.html#converting-jpg-to-sjpg">Converting JPG to SJPG</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/sjpg.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/sjpg.html#load-an-sjpg-image">Load an SJPG image</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/sjpg.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../libs/png.html">PNG decoder</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../libs/png.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/png.html#open-a-png-image-from-file-and-variable">Open a PNG image from file and variable</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/png.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../libs/gif.html">GIF decoder</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../libs/gif.html#convert-gif-files-to-c-array">Convert GIF files to C array</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/gif.html#use-gif-images-from-file">Use GIF images from file</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/gif.html#memory-requirements">Memory requirements</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/gif.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/gif.html#open-a-gif-image-from-file-and-variable">Open a GIF image from file and variable</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/gif.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../libs/freetype.html">FreeType support</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../libs/freetype.html#install-freetype">Install FreeType</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/freetype.html#add-freetype-to-your-project">Add FreeType to your project</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/freetype.html#usage">Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/freetype.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/freetype.html#open-a-front-with-freetype">Open a front with FreeType</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/freetype.html#learn-more">Learn more</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/freetype.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../libs/qrcode.html">QR code</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../libs/qrcode.html#get-started">Get started</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/qrcode.html#notes">Notes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/qrcode.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/qrcode.html#create-a-qr-code">Create a QR Code</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/qrcode.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../libs/rlottie.html">Lottie player</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../libs/rlottie.html#build-rlottie">Build Rlottie</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/rlottie.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/rlottie.html#use-rlottie-from-file">Use Rlottie from file</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../libs/rlottie.html#use-rlottie-from-raw-string-data">Use Rlottie from raw string data</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/rlottie.html#getting-animations">Getting animations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/rlottie.html#controlling-animations">Controlling animations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/rlottie.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/rlottie.html#load-a-lottie-animation-from-raw-data">Load a Lottie animation from raw data</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../libs/rlottie.html#load-a-lottie-animation-from-a-file">Load a Lottie animation from a file</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/rlottie.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../libs/ffmpeg.html">FFmpeg support</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../libs/ffmpeg.html#install-ffmpeg">Install FFmpeg</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/ffmpeg.html#add-ffmpeg-to-your-project">Add FFmpeg to your project</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/ffmpeg.html#usage">Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/ffmpeg.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../libs/ffmpeg.html#decode-image">Decode image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../libs/ffmpeg.html#decode-video">Decode video</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../libs/ffmpeg.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../others/index.html">Others</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../others/snapshot.html">Snapshot</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../others/snapshot.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../others/snapshot.html#free-the-image">Free the Image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../others/snapshot.html#use-existing-buffer">Use Existing Buffer</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../others/snapshot.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../others/snapshot.html#simple-snapshot-example">Simple snapshot example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../others/snapshot.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../others/monkey.html">Monkey</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../others/monkey.html#usage">Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../others/monkey.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../others/monkey.html#touchpad-monkey-example">Touchpad monkey example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../others/monkey.html#encoder-monkey-example">Encoder monkey example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../others/monkey.html#button-monkey-example">Button monkey example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../others/monkey.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../others/gridnav.html">Grid navigation</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../others/gridnav.html#usage">Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../others/gridnav.html#focusable-objects">Focusable objects</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../others/gridnav.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../others/gridnav.html#basic-grid-navigation">Basic grid navigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../others/gridnav.html#grid-navigation-on-a-list">Grid navigation on a list</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../others/gridnav.html#nested-grid-navigations">Nested grid navigations</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../others/gridnav.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../CONTRIBUTING.html">Contributing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../CONTRIBUTING.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../CONTRIBUTING.html#pull-request">Pull request</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#from-github">From GitHub</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#from-command-line">From command line</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#commit-message-format">Commit message format</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CONTRIBUTING.html#developer-certification-of-origin-dco">Developer Certification of Origin (DCO)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#accepted-licenses-and-copyright-notices">Accepted licenses and copyright notices</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../CONTRIBUTING.html#your-own-work">Your own work</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../CONTRIBUTING.html#use-code-from-online-source">Use code from online source</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../CONTRIBUTING.html#use-mit-licensed-code">Use MIT licensed code</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../CONTRIBUTING.html#use-gpl-licensed-code">Use GPL licensed code</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CONTRIBUTING.html#ways-to-contribute">Ways to contribute</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#give-lvgl-a-star">Give LVGL a Star</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#tell-what-you-have-achieved">Tell what you have achieved</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#write-examples">Write examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#improve-the-docs">Improve the docs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#report-bugs">Report bugs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#send-fixes">Send fixes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#join-the-conversations-in-the-forum">Join the conversations in the Forum</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#add-features">Add features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#become-a-maintainer">Become a maintainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CONTRIBUTING.html#move-your-project-repository-under-lvgl-organization">Move your project repository under LVGL organization</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../CHANGELOG.html">Changelog</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v8-1-0-10-november-2021">v8.1.0 10 November 2021</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#breaking-changes">Breaking Changes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#architectural">Architectural</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#new-features">New Features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#performance">Performance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#fixes">Fixes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#examples">Examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#docs">Docs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#ci-and-tests">CI and tests</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#others">Others</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v8-0-2-16-07-2021">v8.0.2 (16.07.2021)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v8-0-1-14-06-2021">v8.0.1 (14.06.2021)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v8-0-0-01-06-2021">v8.0.0 (01.06.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#directory-structure">Directory structure</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#widget-changes">Widget changes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#new-scrolling">New scrolling</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#new-layouts">New layouts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#styles">Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#driver-changes">Driver changes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#other-changes">Other changes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#new-release-policy">New release policy</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#migrating-from-v7-to-v8">Migrating from v7 to v8</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-11-0-16-03-2021">v7.11.0 (16.03.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id1">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#bugfixes">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-10-1-16-02-2021">v7.10.1 (16.02.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id2">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-10-0-02-02-2021">v7.10.0 (02.02.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id3">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id4">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-9-1-19-01-2021">v7.9.1 (19.01.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id5">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-9-0-05-01-2021">v7.9.0 (05.01.2021)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id6">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id7">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-8-1-15-12-2020">v7.8.1 (15.12.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id8">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-8-0-01-12-2020">v7.8.0 (01.12.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id9">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id10">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-7-2-17-11-2020">v7.7.2 (17.11.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id11">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-7-1-03-11-2020">v7.7.1 (03.11.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id12">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-7-0-20-10-2020">v7.7.0 (20.10.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id13">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id14">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-6-1-06-10-2020">v7.6.1 (06.10.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id15">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-6-0-22-09-2020">v7.6.0 (22.09.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id16">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id17">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-5-0-15-09-2020">v7.5.0 (15.09.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id18">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id19">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-4-0-01-09-2020">v7.4.0 (01.09.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id20">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id21">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-3-1-18-08-2020">v7.3.1 (18.08.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id22">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-3-0-04-08-2020">v7.3.0 (04.08.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id23">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id24">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-2-0-21-07-2020">v7.2.0 (21.07.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id25">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id26">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-1-0-07-07-2020">v7.1.0 (07.07.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id27">New features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id28">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-0-2-16-06-2020">v7.0.2 (16.06.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id29">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-0-1-01-06-2020">v7.0.1 (01.06.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id30">Bugfixes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../CHANGELOG.html#v7-0-0-18-05-2020">v7.0.0 (18.05.2020)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#documentation">Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#legal-changes">Legal changes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#new-drawing-system">New drawing system</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#new-style-system">New style system</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#gpu-integration">GPU integration</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#renames">Renames</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#reworked-and-improved-object">Reworked and improved object</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#new-object-types">New object types</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id31">Others</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#demos">Demos</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#id32">New release policy</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../CHANGELOG.html#migrating-from-v6-to-v7">Migrating from v6 to v7</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../ROADMAP.html">Roadmap</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../ROADMAP.html#v8-2">v8.2</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../ROADMAP.html#ideas">Ideas</a></li>
</ul>
</li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../../index.html">LVGL</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          



















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
        
          <li><a href="../index.html">Widgets</a> &raquo;</li>
        
          <li><a href="index.html">Core widgets</a> &raquo;</li>
        
      <li>Button matrix (lv_btnmatrix)</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
          
            
              <!-- User defined GitHub URL -->
              <a href="https://github.com/lvgl/lvgl/blob/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/docs/widgets/core/btnmatrix.md" class="fa fa-github"> Edit on GitHub</a>
            
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="button-matrix-lv-btnmatrix">
<h1>Button matrix (lv_btnmatrix)<a class="headerlink" href="#button-matrix-lv-btnmatrix" title="Permalink to this headline">¶</a></h1>
<div class="section" id="overview">
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
<p>The Button Matrix object is a lightweight way to display multiple buttons in rows and columns. Lightweight because the buttons are not actually created but just virtually drawn on the fly. This way, one button use only eight extra bytes of memory instead of the ~100-150 bytes a normal <a class="reference internal" href="btn.html"><span class="doc">Button</span></a> object plus the 100 or so bytes for the <a class="reference internal" href="label.html"><span class="doc">Label</span></a> object.</p>
<p>The Button matrix is added to the default group (if one is set). Besides the Button matrix is an editable object to allow selecting and clicking the buttons with encoder navigation too.</p>
</div>
<div class="section" id="parts-and-styles">
<h2>Parts and Styles<a class="headerlink" href="#parts-and-styles" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">LV_PART_MAIN</span></code> The background of the button matrix, uses the typical background style properties. <code class="docutils literal notranslate"><span class="pre">pad_row</span></code> and <code class="docutils literal notranslate"><span class="pre">pad_column</span></code> sets the space between the buttons.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_PART_ITEMS</span></code> The buttons all use the text and typical background style properties except translations and transformations.</p></li>
</ul>
</div>
<div class="section" id="usage">
<h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2>
<div class="section" id="button-s-text">
<h3>Button's text<a class="headerlink" href="#button-s-text" title="Permalink to this headline">¶</a></h3>
<p>There is a text on each button. To specify them a descriptor string array, called <em>map</em>, needs to be used.
The map can be set with <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_set_map(btnm,</span> <span class="pre">my_map)</span></code>.
The declaration of a map should look like <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">char</span> <span class="pre">*</span> <span class="pre">map[]</span> <span class="pre">=</span> <span class="pre">{&quot;btn1&quot;,</span> <span class="pre">&quot;btn2&quot;,</span> <span class="pre">&quot;btn3&quot;,</span> <span class="pre">NULL}</span></code>.
Note that the last element has to be either <code class="docutils literal notranslate"><span class="pre">NULL</span></code> or an empty string (<code class="docutils literal notranslate"><span class="pre">&quot;&quot;</span></code>)!</p>
<p>Use <code class="docutils literal notranslate"><span class="pre">&quot;\n&quot;</span></code> in the map to insert a <strong>line break</strong>. E.g. <code class="docutils literal notranslate"><span class="pre">{&quot;btn1&quot;,</span> <span class="pre">&quot;btn2&quot;,</span> <span class="pre">&quot;\n&quot;,</span> <span class="pre">&quot;btn3&quot;,</span> <span class="pre">&quot;&quot;}</span></code>. Each line's buttons have their width calculated automatically.
So in the example the first row will have 2 buttons each with 50% width and a second row with 1 button having 100% width.</p>
</div>
<div class="section" id="control-buttons">
<h3>Control buttons<a class="headerlink" href="#control-buttons" title="Permalink to this headline">¶</a></h3>
<p>The buttons' width can be set relative to the other button in the same row with <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_set_btn_width(btnm,</span> <span class="pre">btn_id,</span> <span class="pre">width)</span></code>
E.g. in a line with two buttons: <em>btnA, width = 1</em> and <em>btnB, width = 2</em>, <em>btnA</em> will have 33 % width and <em>btnB</em> will have 66 % width.
It's similar to how the <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow"><code class="docutils literal notranslate"><span class="pre">flex-grow</span></code></a> property works in CSS.
The width must be in the [1..7] range and the default width is 1.</p>
<p>In addition to the width, each button can be customized with the following parameters:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_HIDDEN</span></code> Makes a button hidden (hidden buttons still take up space in the layout, they are just not visible or clickable)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_NO_REPEAT</span></code> Disable repeating when the button is long pressed</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_DISABLED</span></code> Makes a button disabled Like <code class="docutils literal notranslate"><span class="pre">LV_STATE_DISABLED</span></code> on normal objects</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_CHECKABLE</span></code> Enable toggling of a button. I.e. <code class="docutils literal notranslate"><span class="pre">LV_STATE_CHECHED</span></code> will be added/removed as the button is clicked</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_CHECKED</span></code> Make the button checked. It will use the <code class="docutils literal notranslate"><span class="pre">LV_STATE_CHECHKED</span></code> styles.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_CLICK_TRIG</span></code> Enabled: send LV_EVENT_VALUE_CHANGE on CLICK, Disabled: send LV_EVENT_VALUE_CHANGE on PRESS</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_POPOVER</span></code> Show the button label in a popover when pressing this key</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_RECOLOR</span></code> Enable recoloring of button texts with <code class="docutils literal notranslate"><span class="pre">#</span></code>. E.g. <code class="docutils literal notranslate"><span class="pre">&quot;It's</span> <span class="pre">#ff0000</span> <span class="pre">red#&quot;</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_CUSTOM_1</span></code> Custom free to use flag</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_CUSTOM_2</span></code> Custom free to use flag</p></li>
</ul>
<p>By default, all flags are disabled.</p>
<p>To set or clear a button's control attribute, use <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_set_btn_ctrl(btnm,</span> <span class="pre">btn_id,</span> <span class="pre">LV_BTNM_CTRL_...)</span></code> and
<code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_clear_btn_ctrl(btnm,</span> <span class="pre">btn_id,</span> <span class="pre">LV_BTNMATRIX_CTRL_...)</span></code> respectively. More <code class="docutils literal notranslate"><span class="pre">LV_BTNM_CTRL_...</span></code> values can be OR-ed</p>
<p>To set/clear the same control attribute for all buttons of a button matrix, use <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_set_btn_ctrl_all(btnm,</span> <span class="pre">LV_BTNM_CTRL_...)</span></code> and
<code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_clear_btn_ctrl_all(btnm,</span> <span class="pre">LV_BTNMATRIX_CTRL_...)</span></code>.</p>
<p>The set a control map for a button matrix (similarly to the map for the text), use <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_set_ctrl_map(btnm,</span> <span class="pre">ctrl_map)</span></code>.
An element of <code class="docutils literal notranslate"><span class="pre">ctrl_map</span></code> should look like <code class="docutils literal notranslate"><span class="pre">ctrl_map[0]</span> <span class="pre">=</span> <span class="pre">width</span> <span class="pre">|</span> <span class="pre">LV_BTNM_CTRL_NO_REPEAT</span> <span class="pre">|</span>&#160; <span class="pre">LV_BTNM_CTRL_CHECHKABLE</span></code>.
The number of elements should be equal to the number of buttons (excluding newlines characters).</p>
</div>
<div class="section" id="one-check">
<h3>One check<a class="headerlink" href="#one-check" title="Permalink to this headline">¶</a></h3>
<p>The &quot;One check&quot; feature can be enabled with <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_set_one_checked(btnm,</span> <span class="pre">true)</span></code> to allow only one button to be checked at a time.</p>
</div>
</div>
<div class="section" id="events">
<h2>Events<a class="headerlink" href="#events" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">LV_EVENT_VALUE_CHANGED</span></code> Sent when a button is pressed/released or repeated after long press. The event parameter is set to the ID of the pressed/released button.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_EVENT_DRAW_PART_BEGIN</span></code> and <code class="docutils literal notranslate"><span class="pre">LV_EVENT_DRAW_PART_END</span></code> are sent for the following types:</p>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_DRAW_PART_BTN</span></code> The individual buttons.</p>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">part</span></code>: <code class="docutils literal notranslate"><span class="pre">LV_PART_ITEMS</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">id</span></code>:index of the button being drawn</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">draw_area</span></code>: the area of teh button</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">rect_dsc</span></code></p></li>
</ul>
</li>
</ul>
</li>
</ul>
<p>See the events of the <a class="reference internal" href="../obj.html"><span class="doc">Base object</span></a> too.</p>
<p><code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_get_selected_btn(btnm)</span></code> returns the index of the most recently released or focused button or <code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_BTN_NONE</span></code> if no such button.</p>
<p><code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_get_btn_text(btnm,</span> <span class="pre">btn_id)</span></code> returns a pointer to the text of <code class="docutils literal notranslate"><span class="pre">btn_id</span></code>th button.</p>
<p>Learn more about <a class="reference internal" href="../../overview/event.html"><span class="doc">Events</span></a>.</p>
</div>
<div class="section" id="keys">
<h2>Keys<a class="headerlink" href="#keys" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">LV_KEY_RIGHT/UP/LEFT/RIGHT</span></code> To navigate among the buttons to select one</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LV_KEY_ENTER</span></code> To press/release the selected button</p></li>
</ul>
<p>Learn more about <a class="reference internal" href="../../overview/indev.html"><span class="doc">Keys</span></a>.</p>
</div>
<div class="section" id="example">
<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h2>
<div class="section" id="simple-button-matrix">
<h3>Simple Button matrix<a class="headerlink" href="#simple-button-matrix" title="Permalink to this headline">¶</a></h3>
<div class='lv-example-container'><div class='lv-example' data-real-src='/8.1/_static/built_lv_examples/index.html?example=lv_example_btnmatrix_1&w=320&h=240'></div><div class='lv-example-description'></div></div><div class="toggle docutils container">
<div class="header docutils container">
<p>C code &nbsp;</p><a class='lv-example-link-button' onclick="event.stopPropagation();" href='https://github.com/lvgl/lvgl/blob/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/widgets/btnmatrix/lv_example_btnmatrix_1.c'><i class="fa fa-github"></i>&nbsp;GitHub</a></div>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf">&quot;../../lv_examples.h&quot;</span><span class="cp"></span>
<span class="cp">#if LV_USE_BTNMATRIX &amp;&amp; LV_BUILD_EXAMPLES</span>

<span class="k">static</span> <span class="kt">void</span> <span class="nf">event_handler</span><span class="p">(</span><span class="n">lv_event_t</span> <span class="o">*</span> <span class="n">e</span><span class="p">)</span>
<span class="p">{</span>
    <span class="n">lv_event_code_t</span> <span class="n">code</span> <span class="o">=</span> <span class="n">lv_event_get_code</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
    <span class="n">lv_obj_t</span> <span class="o">*</span> <span class="n">obj</span> <span class="o">=</span> <span class="n">lv_event_get_target</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
    <span class="k">if</span><span class="p">(</span><span class="n">code</span> <span class="o">==</span> <span class="n">LV_EVENT_VALUE_CHANGED</span><span class="p">)</span> <span class="p">{</span>
        <span class="kt">uint32_t</span> <span class="n">id</span> <span class="o">=</span> <span class="n">lv_btnmatrix_get_selected_btn</span><span class="p">(</span><span class="n">obj</span><span class="p">);</span>
        <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">txt</span> <span class="o">=</span> <span class="n">lv_btnmatrix_get_btn_text</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">id</span><span class="p">);</span>

        <span class="n">LV_LOG_USER</span><span class="p">(</span><span class="s">&quot;%s was pressed</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">txt</span><span class="p">);</span>
    <span class="p">}</span>
<span class="p">}</span>


<span class="k">static</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">btnm_map</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="s">&quot;1&quot;</span><span class="p">,</span> <span class="s">&quot;2&quot;</span><span class="p">,</span> <span class="s">&quot;3&quot;</span><span class="p">,</span> <span class="s">&quot;4&quot;</span><span class="p">,</span> <span class="s">&quot;5&quot;</span><span class="p">,</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span>
                                  <span class="s">&quot;6&quot;</span><span class="p">,</span> <span class="s">&quot;7&quot;</span><span class="p">,</span> <span class="s">&quot;8&quot;</span><span class="p">,</span> <span class="s">&quot;9&quot;</span><span class="p">,</span> <span class="s">&quot;0&quot;</span><span class="p">,</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span>
                                  <span class="s">&quot;Action1&quot;</span><span class="p">,</span> <span class="s">&quot;Action2&quot;</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">};</span>

<span class="kt">void</span> <span class="nf">lv_example_btnmatrix_1</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="p">{</span>
    <span class="n">lv_obj_t</span> <span class="o">*</span> <span class="n">btnm1</span> <span class="o">=</span> <span class="n">lv_btnmatrix_create</span><span class="p">(</span><span class="n">lv_scr_act</span><span class="p">());</span>
    <span class="n">lv_btnmatrix_set_map</span><span class="p">(</span><span class="n">btnm1</span><span class="p">,</span> <span class="n">btnm_map</span><span class="p">);</span>
    <span class="n">lv_btnmatrix_set_btn_width</span><span class="p">(</span><span class="n">btnm1</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span>        <span class="cm">/*Make &quot;Action1&quot; twice as wide as &quot;Action2&quot;*/</span>
    <span class="n">lv_btnmatrix_set_btn_ctrl</span><span class="p">(</span><span class="n">btnm1</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="n">LV_BTNMATRIX_CTRL_CHECKABLE</span><span class="p">);</span>
    <span class="n">lv_btnmatrix_set_btn_ctrl</span><span class="p">(</span><span class="n">btnm1</span><span class="p">,</span> <span class="mi">11</span><span class="p">,</span> <span class="n">LV_BTNMATRIX_CTRL_CHECKED</span><span class="p">);</span>
    <span class="n">lv_obj_align</span><span class="p">(</span><span class="n">btnm1</span><span class="p">,</span> <span class="n">LV_ALIGN_CENTER</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
    <span class="n">lv_obj_add_event_cb</span><span class="p">(</span><span class="n">btnm1</span><span class="p">,</span> <span class="n">event_handler</span><span class="p">,</span> <span class="n">LV_EVENT_ALL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
<span class="p">}</span>

<span class="cp">#endif</span>
</pre></div>
</div>
</div>
<div class="toggle docutils container">
<div class="header docutils container">
<p>MicroPython code &nbsp;</p><a class='lv-example-link-button' onclick="event.stopPropagation();" href='https://github.com/lvgl/lvgl/blob/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/widgets/btnmatrix/lv_example_btnmatrix_1.py'><i class="fa fa-github"></i>&nbsp;GitHub</a><a class='lv-example-link-button' onclick="event.stopPropagation();" href='https://sim.lvgl.io/v8.1/micropython/ports/javascript/index.html?script_startup=https://raw.githubusercontent.com/lvgl/lvgl/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/header.py&script=https://raw.githubusercontent.com/lvgl/lvgl/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/widgets/btnmatrix/lv_example_btnmatrix_1.py'><i class="fa fa-play"></i>&nbsp;Simulator</a></div>
<div class="highlight-py notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">event_handler</span><span class="p">(</span><span class="n">evt</span><span class="p">):</span>
    <span class="n">code</span> <span class="o">=</span> <span class="n">evt</span><span class="o">.</span><span class="n">get_code</span><span class="p">()</span>
    <span class="n">obj</span>  <span class="o">=</span> <span class="n">evt</span><span class="o">.</span><span class="n">get_target</span><span class="p">()</span>

    <span class="k">if</span> <span class="n">code</span> <span class="o">==</span> <span class="n">lv</span><span class="o">.</span><span class="n">EVENT</span><span class="o">.</span><span class="n">VALUE_CHANGED</span> <span class="p">:</span>
        <span class="nb">id</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">get_selected_btn</span><span class="p">()</span>
        <span class="n">txt</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">get_btn_text</span><span class="p">(</span><span class="nb">id</span><span class="p">)</span>

        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> was pressed&quot;</span><span class="o">%</span><span class="n">txt</span><span class="p">)</span>

<span class="n">btnm_map</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;1&quot;</span><span class="p">,</span> <span class="s2">&quot;2&quot;</span><span class="p">,</span> <span class="s2">&quot;3&quot;</span><span class="p">,</span> <span class="s2">&quot;4&quot;</span><span class="p">,</span> <span class="s2">&quot;5&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
            <span class="s2">&quot;6&quot;</span><span class="p">,</span> <span class="s2">&quot;7&quot;</span><span class="p">,</span> <span class="s2">&quot;8&quot;</span><span class="p">,</span> <span class="s2">&quot;9&quot;</span><span class="p">,</span> <span class="s2">&quot;0&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span>
            <span class="s2">&quot;Action1&quot;</span><span class="p">,</span> <span class="s2">&quot;Action2&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">]</span>

<span class="n">btnm1</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">scr_act</span><span class="p">())</span>
<span class="n">btnm1</span><span class="o">.</span><span class="n">set_map</span><span class="p">(</span><span class="n">btnm_map</span><span class="p">)</span>
<span class="n">btnm1</span><span class="o">.</span><span class="n">set_btn_width</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>        <span class="c1"># Make &quot;Action1&quot; twice as wide as &quot;Action2&quot;</span>
<span class="n">btnm1</span><span class="o">.</span><span class="n">set_btn_ctrl</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="o">.</span><span class="n">CTRL</span><span class="o">.</span><span class="n">CHECKABLE</span><span class="p">)</span>
<span class="n">btnm1</span><span class="o">.</span><span class="n">set_btn_ctrl</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="o">.</span><span class="n">CTRL</span><span class="o">.</span><span class="n">CHECKED</span><span class="p">)</span>
<span class="n">btnm1</span><span class="o">.</span><span class="n">align</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">ALIGN</span><span class="o">.</span><span class="n">CENTER</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="n">btnm1</span><span class="o">.</span><span class="n">add_event_cb</span><span class="p">(</span><span class="n">event_handler</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">EVENT</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>


<span class="c1">#endif</span>
</pre></div>
</div>
</div>
<hr/></div>
<div class="section" id="custom-buttons">
<h3>Custom buttons<a class="headerlink" href="#custom-buttons" title="Permalink to this headline">¶</a></h3>
<div class='lv-example-container'><div class='lv-example' data-real-src='/8.1/_static/built_lv_examples/index.html?example=lv_example_btnmatrix_2&w=320&h=240'></div><div class='lv-example-description'></div></div><div class="toggle docutils container">
<div class="header docutils container">
<p>C code &nbsp;</p><a class='lv-example-link-button' onclick="event.stopPropagation();" href='https://github.com/lvgl/lvgl/blob/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/widgets/btnmatrix/lv_example_btnmatrix_2.c'><i class="fa fa-github"></i>&nbsp;GitHub</a></div>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf">&quot;../../lv_examples.h&quot;</span><span class="cp"></span>
<span class="cp">#if LV_USE_BTNMATRIX &amp;&amp; LV_BUILD_EXAMPLES</span>


<span class="k">static</span> <span class="kt">void</span> <span class="nf">event_cb</span><span class="p">(</span><span class="n">lv_event_t</span> <span class="o">*</span> <span class="n">e</span><span class="p">)</span>
<span class="p">{</span>
    <span class="n">lv_event_code_t</span> <span class="n">code</span> <span class="o">=</span> <span class="n">lv_event_get_code</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
    <span class="n">lv_obj_t</span> <span class="o">*</span> <span class="n">obj</span> <span class="o">=</span> <span class="n">lv_event_get_target</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
    <span class="k">if</span><span class="p">(</span><span class="n">code</span> <span class="o">==</span> <span class="n">LV_EVENT_DRAW_PART_BEGIN</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">lv_obj_draw_part_dsc_t</span> <span class="o">*</span> <span class="n">dsc</span> <span class="o">=</span> <span class="n">lv_event_get_param</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>

        <span class="cm">/*Change the draw descriptor the 2nd button*/</span>
        <span class="k">if</span><span class="p">(</span><span class="n">dsc</span><span class="o">-&gt;</span><span class="n">id</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">rect_dsc</span><span class="o">-&gt;</span><span class="n">radius</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
            <span class="k">if</span><span class="p">(</span><span class="n">lv_btnmatrix_get_selected_btn</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="o">==</span> <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">id</span><span class="p">)</span>  <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">rect_dsc</span><span class="o">-&gt;</span><span class="n">bg_color</span> <span class="o">=</span> <span class="n">lv_palette_darken</span><span class="p">(</span><span class="n">LV_PALETTE_BLUE</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span>
            <span class="k">else</span> <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">rect_dsc</span><span class="o">-&gt;</span><span class="n">bg_color</span> <span class="o">=</span> <span class="n">lv_palette_main</span><span class="p">(</span><span class="n">LV_PALETTE_BLUE</span><span class="p">);</span>

            <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">rect_dsc</span><span class="o">-&gt;</span><span class="n">shadow_width</span> <span class="o">=</span> <span class="mi">6</span><span class="p">;</span>
            <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">rect_dsc</span><span class="o">-&gt;</span><span class="n">shadow_ofs_x</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>
            <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">rect_dsc</span><span class="o">-&gt;</span><span class="n">shadow_ofs_y</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>
            <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">label_dsc</span><span class="o">-&gt;</span><span class="n">color</span> <span class="o">=</span> <span class="n">lv_color_white</span><span class="p">();</span>
        <span class="p">}</span>
        <span class="cm">/*Change the draw descriptor the 3rd button*/</span>
        <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="n">dsc</span><span class="o">-&gt;</span><span class="n">id</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">rect_dsc</span><span class="o">-&gt;</span><span class="n">radius</span> <span class="o">=</span> <span class="n">LV_RADIUS_CIRCLE</span><span class="p">;</span>
            <span class="k">if</span><span class="p">(</span><span class="n">lv_btnmatrix_get_selected_btn</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="o">==</span> <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">id</span><span class="p">)</span>  <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">rect_dsc</span><span class="o">-&gt;</span><span class="n">bg_color</span> <span class="o">=</span> <span class="n">lv_palette_darken</span><span class="p">(</span><span class="n">LV_PALETTE_RED</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span>
            <span class="k">else</span> <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">rect_dsc</span><span class="o">-&gt;</span><span class="n">bg_color</span> <span class="o">=</span> <span class="n">lv_palette_main</span><span class="p">(</span><span class="n">LV_PALETTE_RED</span><span class="p">);</span>

            <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">label_dsc</span><span class="o">-&gt;</span><span class="n">color</span> <span class="o">=</span> <span class="n">lv_color_white</span><span class="p">();</span>
        <span class="p">}</span>
        <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="n">dsc</span><span class="o">-&gt;</span><span class="n">id</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">label_dsc</span><span class="o">-&gt;</span><span class="n">opa</span> <span class="o">=</span> <span class="n">LV_OPA_TRANSP</span><span class="p">;</span> <span class="cm">/*Hide the text if any*/</span>

        <span class="p">}</span>
    <span class="p">}</span>
    <span class="k">if</span><span class="p">(</span><span class="n">code</span> <span class="o">==</span> <span class="n">LV_EVENT_DRAW_PART_END</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">lv_obj_draw_part_dsc_t</span> <span class="o">*</span> <span class="n">dsc</span> <span class="o">=</span> <span class="n">lv_event_get_param</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>

        <span class="cm">/*Add custom content to the 4th button when the button itself was drawn*/</span>
        <span class="k">if</span><span class="p">(</span><span class="n">dsc</span><span class="o">-&gt;</span><span class="n">id</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">LV_IMG_DECLARE</span><span class="p">(</span><span class="n">img_star</span><span class="p">);</span>
            <span class="n">lv_img_header_t</span> <span class="n">header</span><span class="p">;</span>
            <span class="n">lv_res_t</span> <span class="n">res</span> <span class="o">=</span> <span class="n">lv_img_decoder_get_info</span><span class="p">(</span><span class="o">&amp;</span><span class="n">img_star</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">header</span><span class="p">);</span>
            <span class="k">if</span><span class="p">(</span><span class="n">res</span> <span class="o">!=</span> <span class="n">LV_RES_OK</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>

            <span class="n">lv_area_t</span> <span class="n">a</span><span class="p">;</span>
            <span class="n">a</span><span class="p">.</span><span class="n">x1</span> <span class="o">=</span> <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">draw_area</span><span class="o">-&gt;</span><span class="n">x1</span> <span class="o">+</span> <span class="p">(</span><span class="n">lv_area_get_width</span><span class="p">(</span><span class="n">dsc</span><span class="o">-&gt;</span><span class="n">draw_area</span><span class="p">)</span> <span class="o">-</span> <span class="n">header</span><span class="p">.</span><span class="n">w</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">;</span>
            <span class="n">a</span><span class="p">.</span><span class="n">x2</span> <span class="o">=</span> <span class="n">a</span><span class="p">.</span><span class="n">x1</span> <span class="o">+</span> <span class="n">header</span><span class="p">.</span><span class="n">w</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
            <span class="n">a</span><span class="p">.</span><span class="n">y1</span> <span class="o">=</span> <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">draw_area</span><span class="o">-&gt;</span><span class="n">y1</span> <span class="o">+</span> <span class="p">(</span><span class="n">lv_area_get_height</span><span class="p">(</span><span class="n">dsc</span><span class="o">-&gt;</span><span class="n">draw_area</span><span class="p">)</span> <span class="o">-</span> <span class="n">header</span><span class="p">.</span><span class="n">h</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">;</span>
            <span class="n">a</span><span class="p">.</span><span class="n">y2</span> <span class="o">=</span> <span class="n">a</span><span class="p">.</span><span class="n">y1</span> <span class="o">+</span> <span class="n">header</span><span class="p">.</span><span class="n">h</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>

            <span class="n">lv_draw_img_dsc_t</span> <span class="n">img_draw_dsc</span><span class="p">;</span>
            <span class="n">lv_draw_img_dsc_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">img_draw_dsc</span><span class="p">);</span>
            <span class="n">img_draw_dsc</span><span class="p">.</span><span class="n">recolor</span> <span class="o">=</span> <span class="n">lv_color_black</span><span class="p">();</span>
            <span class="k">if</span><span class="p">(</span><span class="n">lv_btnmatrix_get_selected_btn</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="o">==</span> <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">id</span><span class="p">)</span>  <span class="n">img_draw_dsc</span><span class="p">.</span><span class="n">recolor_opa</span> <span class="o">=</span> <span class="n">LV_OPA_30</span><span class="p">;</span>

            <span class="n">lv_draw_img</span><span class="p">(</span><span class="n">dsc</span><span class="o">-&gt;</span><span class="n">draw_ctx</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">img_draw_dsc</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">a</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">img_star</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="cm">/**</span>
<span class="cm"> * Add custom drawer to the button matrix to customize buttons one by one</span>
<span class="cm"> */</span>
<span class="kt">void</span> <span class="nf">lv_example_btnmatrix_2</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="p">{</span>
    <span class="n">lv_obj_t</span> <span class="o">*</span> <span class="n">btnm</span> <span class="o">=</span> <span class="n">lv_btnmatrix_create</span><span class="p">(</span><span class="n">lv_scr_act</span><span class="p">());</span>
    <span class="n">lv_obj_add_event_cb</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="n">event_cb</span><span class="p">,</span> <span class="n">LV_EVENT_ALL</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
    <span class="n">lv_obj_center</span><span class="p">(</span><span class="n">btnm</span><span class="p">);</span>
<span class="p">}</span>

<span class="cp">#endif</span>
</pre></div>
</div>
</div>
<div class="toggle docutils container">
<div class="header docutils container">
<p>MicroPython code &nbsp;</p><a class='lv-example-link-button' onclick="event.stopPropagation();" href='https://github.com/lvgl/lvgl/blob/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/widgets/btnmatrix/lv_example_btnmatrix_2.py'><i class="fa fa-github"></i>&nbsp;GitHub</a><a class='lv-example-link-button' onclick="event.stopPropagation();" href='https://sim.lvgl.io/v8.1/micropython/ports/javascript/index.html?script_startup=https://raw.githubusercontent.com/lvgl/lvgl/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/header.py&script=https://raw.githubusercontent.com/lvgl/lvgl/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/widgets/btnmatrix/lv_example_btnmatrix_2.py'><i class="fa fa-play"></i>&nbsp;Simulator</a></div>
<div class="highlight-py notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">imagetools</span> <span class="kn">import</span> <span class="n">get_png_info</span><span class="p">,</span> <span class="n">open_png</span>

<span class="c1"># Register PNG image decoder</span>
<span class="n">decoder</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">img</span><span class="o">.</span><span class="n">decoder_create</span><span class="p">()</span>
<span class="n">decoder</span><span class="o">.</span><span class="n">info_cb</span> <span class="o">=</span> <span class="n">get_png_info</span>
<span class="n">decoder</span><span class="o">.</span><span class="n">open_cb</span> <span class="o">=</span> <span class="n">open_png</span>

<span class="c1"># Create an image from the png file</span>
<span class="k">try</span><span class="p">:</span>
    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;../../assets/img_star.png&#39;</span><span class="p">,</span><span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
        <span class="n">png_data</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
<span class="k">except</span><span class="p">:</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Could not find star.png&quot;</span><span class="p">)</span>
    <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">()</span>
    
<span class="n">img_star_argb</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">img_dsc_t</span><span class="p">({</span>
  <span class="s1">&#39;data_size&#39;</span><span class="p">:</span> <span class="nb">len</span><span class="p">(</span><span class="n">png_data</span><span class="p">),</span>
  <span class="s1">&#39;data&#39;</span><span class="p">:</span> <span class="n">png_data</span> 
<span class="p">})</span>

<span class="k">def</span> <span class="nf">event_cb</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
    <span class="n">code</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">get_code</span><span class="p">()</span>
    <span class="n">obj</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">get_target</span><span class="p">()</span>
    <span class="n">dsc</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">obj_draw_part_dsc_t</span><span class="o">.</span><span class="n">__cast__</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">get_param</span><span class="p">())</span>
    <span class="k">if</span> <span class="n">code</span> <span class="o">==</span> <span class="n">lv</span><span class="o">.</span><span class="n">EVENT</span><span class="o">.</span><span class="n">DRAW_PART_BEGIN</span><span class="p">:</span>
        <span class="c1"># Change the draw descriptor the 2nd button</span>
        <span class="k">if</span> <span class="n">dsc</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
            <span class="n">dsc</span><span class="o">.</span><span class="n">rect_dsc</span><span class="o">.</span><span class="n">radius</span> <span class="o">=</span> <span class="mi">0</span>
            <span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">get_selected_btn</span><span class="p">()</span> <span class="o">==</span> <span class="n">dsc</span><span class="o">.</span><span class="n">id</span><span class="p">:</span>
                <span class="n">dsc</span><span class="o">.</span><span class="n">rect_dsc</span><span class="o">.</span><span class="n">bg_color</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">palette_darken</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">PALETTE</span><span class="o">.</span><span class="n">GREY</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
            <span class="k">else</span><span class="p">:</span>
                <span class="n">dsc</span><span class="o">.</span><span class="n">rect_dsc</span><span class="o">.</span><span class="n">bg_color</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">palette_main</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">PALETTE</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>

            <span class="n">dsc</span><span class="o">.</span><span class="n">rect_dsc</span><span class="o">.</span><span class="n">shadow_width</span> <span class="o">=</span> <span class="mi">6</span>
            <span class="n">dsc</span><span class="o">.</span><span class="n">rect_dsc</span><span class="o">.</span><span class="n">shadow_ofs_x</span> <span class="o">=</span> <span class="mi">3</span>
            <span class="n">dsc</span><span class="o">.</span><span class="n">rect_dsc</span><span class="o">.</span><span class="n">shadow_ofs_y</span> <span class="o">=</span> <span class="mi">3</span>
            <span class="n">dsc</span><span class="o">.</span><span class="n">label_dsc</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">color_white</span><span class="p">()</span>

        <span class="c1"># Change the draw descriptor the 3rd button</span>

        <span class="k">elif</span> <span class="n">dsc</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
            <span class="n">dsc</span><span class="o">.</span><span class="n">rect_dsc</span><span class="o">.</span><span class="n">radius</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">RADIUS</span><span class="o">.</span><span class="n">CIRCLE</span>
            <span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">get_selected_btn</span><span class="p">()</span> <span class="o">==</span> <span class="n">dsc</span><span class="o">.</span><span class="n">id</span><span class="p">:</span>
                <span class="n">dsc</span><span class="o">.</span><span class="n">rect_dsc</span><span class="o">.</span><span class="n">bg_color</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">palette_darken</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">PALETTE</span><span class="o">.</span><span class="n">RED</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
            <span class="k">else</span><span class="p">:</span>
                <span class="n">dsc</span><span class="o">.</span><span class="n">rect_dsc</span><span class="o">.</span><span class="n">bg_color</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">palette_main</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">PALETTE</span><span class="o">.</span><span class="n">RED</span><span class="p">)</span>
                
                <span class="n">dsc</span><span class="o">.</span><span class="n">label_dsc</span><span class="o">.</span><span class="n">color</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">color_white</span><span class="p">()</span>
        <span class="k">elif</span> <span class="n">dsc</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
            <span class="n">dsc</span><span class="o">.</span><span class="n">label_dsc</span><span class="o">.</span><span class="n">opa</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">OPA</span><span class="o">.</span><span class="n">TRANSP</span>  <span class="c1"># Hide the text if any</span>

    <span class="k">if</span> <span class="n">code</span> <span class="o">==</span> <span class="n">lv</span><span class="o">.</span><span class="n">EVENT</span><span class="o">.</span><span class="n">DRAW_PART_END</span><span class="p">:</span>
        <span class="c1"># Add custom content to the 4th button when the button itself was drawn</span>
        <span class="k">if</span> <span class="n">dsc</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
            <span class="c1"># LV_IMG_DECLARE(img_star)</span>
            <span class="n">header</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">img_header_t</span><span class="p">()</span>
            <span class="n">res</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">img</span><span class="o">.</span><span class="n">decoder_get_info</span><span class="p">(</span><span class="n">img_star_argb</span><span class="p">,</span> <span class="n">header</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">res</span> <span class="o">!=</span> <span class="n">lv</span><span class="o">.</span><span class="n">RES</span><span class="o">.</span><span class="n">OK</span><span class="p">:</span>
                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;error when getting image header&quot;</span><span class="p">)</span>
                <span class="k">return</span>
            <span class="k">else</span><span class="p">:</span>
                <span class="n">a</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">area_t</span><span class="p">()</span>
                <span class="n">a</span><span class="o">.</span><span class="n">x1</span> <span class="o">=</span> <span class="n">dsc</span><span class="o">.</span><span class="n">draw_area</span><span class="o">.</span><span class="n">x1</span> <span class="o">+</span> <span class="p">(</span><span class="n">dsc</span><span class="o">.</span><span class="n">draw_area</span><span class="o">.</span><span class="n">get_width</span><span class="p">()</span> <span class="o">-</span> <span class="n">header</span><span class="o">.</span><span class="n">w</span><span class="p">)</span> <span class="o">//</span> <span class="mi">2</span>
                <span class="n">a</span><span class="o">.</span><span class="n">x2</span> <span class="o">=</span> <span class="n">a</span><span class="o">.</span><span class="n">x1</span> <span class="o">+</span> <span class="n">header</span><span class="o">.</span><span class="n">w</span> <span class="o">-</span> <span class="mi">1</span>
                <span class="n">a</span><span class="o">.</span><span class="n">y1</span> <span class="o">=</span> <span class="n">dsc</span><span class="o">.</span><span class="n">draw_area</span><span class="o">.</span><span class="n">y1</span> <span class="o">+</span> <span class="p">(</span><span class="n">dsc</span><span class="o">.</span><span class="n">draw_area</span><span class="o">.</span><span class="n">get_height</span><span class="p">()</span> <span class="o">-</span> <span class="n">header</span><span class="o">.</span><span class="n">h</span><span class="p">)</span> <span class="o">//</span> <span class="mi">2</span>
                <span class="n">a</span><span class="o">.</span><span class="n">y2</span> <span class="o">=</span> <span class="n">a</span><span class="o">.</span><span class="n">y1</span> <span class="o">+</span> <span class="n">header</span><span class="o">.</span><span class="n">h</span> <span class="o">-</span> <span class="mi">1</span>
                <span class="n">img_draw_dsc</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">draw_img_dsc_t</span><span class="p">()</span>
                <span class="n">img_draw_dsc</span><span class="o">.</span><span class="n">init</span><span class="p">()</span>
                <span class="n">img_draw_dsc</span><span class="o">.</span><span class="n">recolor</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">color_black</span><span class="p">()</span>
                <span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">get_selected_btn</span><span class="p">()</span> <span class="o">==</span> <span class="n">dsc</span><span class="o">.</span><span class="n">id</span><span class="p">:</span>
                    <span class="n">img_draw_dsc</span><span class="o">.</span><span class="n">recolor_opa</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">OPA</span><span class="o">.</span><span class="n">_30</span>

                <span class="n">dsc</span><span class="o">.</span><span class="n">draw_ctx</span><span class="o">.</span><span class="n">img</span><span class="p">(</span><span class="n">img_draw_dsc</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">img_star_argb</span><span class="p">)</span>

<span class="c1">#</span>
<span class="c1"># Add custom drawer to the button matrix to c</span>
<span class="c1">#</span>
<span class="n">btnm</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">scr_act</span><span class="p">())</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">add_event_cb</span><span class="p">(</span><span class="n">event_cb</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">EVENT</span><span class="o">.</span><span class="n">ALL</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">center</span><span class="p">()</span>

</pre></div>
</div>
</div>
<hr/></div>
<div class="section" id="pagination">
<h3>Pagination<a class="headerlink" href="#pagination" title="Permalink to this headline">¶</a></h3>
<div class='lv-example-container'><div class='lv-example' data-real-src='/8.1/_static/built_lv_examples/index.html?example=lv_example_btnmatrix_3&w=320&h=240'></div><div class='lv-example-description'></div></div><div class="toggle docutils container">
<div class="header docutils container">
<p>C code &nbsp;</p><a class='lv-example-link-button' onclick="event.stopPropagation();" href='https://github.com/lvgl/lvgl/blob/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/widgets/btnmatrix/lv_example_btnmatrix_3.c'><i class="fa fa-github"></i>&nbsp;GitHub</a></div>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf">&quot;../../lv_examples.h&quot;</span><span class="cp"></span>
<span class="cp">#if LV_USE_BTNMATRIX  &amp;&amp; LV_BUILD_EXAMPLES</span>

<span class="k">static</span> <span class="kt">void</span> <span class="nf">event_cb</span><span class="p">(</span><span class="n">lv_event_t</span> <span class="o">*</span> <span class="n">e</span><span class="p">)</span>
<span class="p">{</span>
    <span class="n">lv_obj_t</span> <span class="o">*</span> <span class="n">obj</span> <span class="o">=</span> <span class="n">lv_event_get_target</span><span class="p">(</span><span class="n">e</span><span class="p">);</span>
    <span class="kt">uint32_t</span> <span class="n">id</span> <span class="o">=</span> <span class="n">lv_btnmatrix_get_selected_btn</span><span class="p">(</span><span class="n">obj</span><span class="p">);</span>
    <span class="kt">bool</span> <span class="n">prev</span> <span class="o">=</span> <span class="n">id</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">?</span> <span class="nb">true</span> <span class="o">:</span> <span class="nb">false</span><span class="p">;</span>
    <span class="kt">bool</span> <span class="n">next</span> <span class="o">=</span> <span class="n">id</span> <span class="o">==</span> <span class="mi">6</span> <span class="o">?</span> <span class="nb">true</span> <span class="o">:</span> <span class="nb">false</span><span class="p">;</span>
    <span class="k">if</span><span class="p">(</span><span class="n">prev</span> <span class="o">||</span> <span class="n">next</span><span class="p">)</span> <span class="p">{</span>
        <span class="cm">/*Find the checked button*/</span>
        <span class="kt">uint32_t</span> <span class="n">i</span><span class="p">;</span>
        <span class="k">for</span><span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">7</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span><span class="p">(</span><span class="n">lv_btnmatrix_has_btn_ctrl</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">LV_BTNMATRIX_CTRL_CHECKED</span><span class="p">))</span> <span class="k">break</span><span class="p">;</span>
        <span class="p">}</span>

        <span class="k">if</span><span class="p">(</span><span class="n">prev</span> <span class="o">&amp;&amp;</span> <span class="n">i</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">)</span> <span class="n">i</span><span class="o">--</span><span class="p">;</span>
        <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="n">next</span> <span class="o">&amp;&amp;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">5</span><span class="p">)</span> <span class="n">i</span><span class="o">++</span><span class="p">;</span>

        <span class="n">lv_btnmatrix_set_btn_ctrl</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">LV_BTNMATRIX_CTRL_CHECKED</span><span class="p">);</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="cm">/**</span>
<span class="cm"> * Make a button group (pagination)</span>
<span class="cm"> */</span>
<span class="kt">void</span> <span class="nf">lv_example_btnmatrix_3</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="p">{</span>
    <span class="k">static</span> <span class="n">lv_style_t</span> <span class="n">style_bg</span><span class="p">;</span>
    <span class="n">lv_style_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_bg</span><span class="p">);</span>
    <span class="n">lv_style_set_pad_all</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_bg</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
    <span class="n">lv_style_set_pad_gap</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_bg</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
    <span class="n">lv_style_set_clip_corner</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_bg</span><span class="p">,</span> <span class="nb">true</span><span class="p">);</span>
    <span class="n">lv_style_set_radius</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_bg</span><span class="p">,</span> <span class="n">LV_RADIUS_CIRCLE</span><span class="p">);</span>
    <span class="n">lv_style_set_border_width</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_bg</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>


    <span class="k">static</span> <span class="n">lv_style_t</span> <span class="n">style_btn</span><span class="p">;</span>
    <span class="n">lv_style_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_btn</span><span class="p">);</span>
    <span class="n">lv_style_set_radius</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_btn</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
    <span class="n">lv_style_set_border_width</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_btn</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
    <span class="n">lv_style_set_border_opa</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_btn</span><span class="p">,</span> <span class="n">LV_OPA_50</span><span class="p">);</span>
    <span class="n">lv_style_set_border_color</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_btn</span><span class="p">,</span> <span class="n">lv_palette_main</span><span class="p">(</span><span class="n">LV_PALETTE_GREY</span><span class="p">));</span>
    <span class="n">lv_style_set_border_side</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_btn</span><span class="p">,</span> <span class="n">LV_BORDER_SIDE_INTERNAL</span><span class="p">);</span>
    <span class="n">lv_style_set_radius</span><span class="p">(</span><span class="o">&amp;</span><span class="n">style_btn</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>

    <span class="k">static</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">map</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="n">LV_SYMBOL_LEFT</span><span class="p">,</span> <span class="s">&quot;1&quot;</span><span class="p">,</span> <span class="s">&quot;2&quot;</span><span class="p">,</span> <span class="s">&quot;3&quot;</span><span class="p">,</span> <span class="s">&quot;4&quot;</span><span class="p">,</span> <span class="s">&quot;5&quot;</span><span class="p">,</span> <span class="n">LV_SYMBOL_RIGHT</span><span class="p">,</span> <span class="s">&quot;&quot;</span><span class="p">};</span>

    <span class="n">lv_obj_t</span> <span class="o">*</span> <span class="n">btnm</span> <span class="o">=</span> <span class="n">lv_btnmatrix_create</span><span class="p">(</span><span class="n">lv_scr_act</span><span class="p">());</span>
    <span class="n">lv_btnmatrix_set_map</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="n">map</span><span class="p">);</span>
    <span class="n">lv_obj_add_style</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">style_bg</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
    <span class="n">lv_obj_add_style</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">style_btn</span><span class="p">,</span> <span class="n">LV_PART_ITEMS</span><span class="p">);</span>
    <span class="n">lv_obj_add_event_cb</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="n">event_cb</span><span class="p">,</span> <span class="n">LV_EVENT_VALUE_CHANGED</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
    <span class="n">lv_obj_set_size</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="mi">225</span><span class="p">,</span> <span class="mi">35</span><span class="p">);</span>

    <span class="cm">/*Allow selecting on one number at time*/</span>
    <span class="n">lv_btnmatrix_set_btn_ctrl_all</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="n">LV_BTNMATRIX_CTRL_CHECKABLE</span><span class="p">);</span>
    <span class="n">lv_btnmatrix_clear_btn_ctrl</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">LV_BTNMATRIX_CTRL_CHECKABLE</span><span class="p">);</span>
    <span class="n">lv_btnmatrix_clear_btn_ctrl</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="n">LV_BTNMATRIX_CTRL_CHECKABLE</span><span class="p">);</span>

    <span class="n">lv_btnmatrix_set_one_checked</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="nb">true</span><span class="p">);</span>
    <span class="n">lv_btnmatrix_set_btn_ctrl</span><span class="p">(</span><span class="n">btnm</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">LV_BTNMATRIX_CTRL_CHECKED</span><span class="p">);</span>

    <span class="n">lv_obj_center</span><span class="p">(</span><span class="n">btnm</span><span class="p">);</span>

<span class="p">}</span>

<span class="cp">#endif</span>
</pre></div>
</div>
</div>
<div class="toggle docutils container">
<div class="header docutils container">
<p>MicroPython code &nbsp;</p><a class='lv-example-link-button' onclick="event.stopPropagation();" href='https://github.com/lvgl/lvgl/blob/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/widgets/btnmatrix/lv_example_btnmatrix_3.py'><i class="fa fa-github"></i>&nbsp;GitHub</a><a class='lv-example-link-button' onclick="event.stopPropagation();" href='https://sim.lvgl.io/v8.1/micropython/ports/javascript/index.html?script_startup=https://raw.githubusercontent.com/lvgl/lvgl/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/header.py&script=https://raw.githubusercontent.com/lvgl/lvgl/d851fe0528fcb920fee86c944fe9dbbaf6fbb0c9/examples/widgets/btnmatrix/lv_example_btnmatrix_3.py'><i class="fa fa-play"></i>&nbsp;Simulator</a></div>
<div class="highlight-py notranslate"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">event_cb</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
    <span class="n">obj</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">get_target</span><span class="p">()</span>
    <span class="nb">id</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">get_selected_btn</span><span class="p">()</span>
    <span class="k">if</span> <span class="nb">id</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
        <span class="n">prev</span> <span class="o">=</span> <span class="kc">True</span>
    <span class="k">else</span><span class="p">:</span>
        <span class="n">prev</span> <span class="o">=</span> <span class="kc">False</span>
    <span class="k">if</span> <span class="nb">id</span> <span class="o">==</span> <span class="mi">6</span><span class="p">:</span>
        <span class="nb">next</span> <span class="o">=</span> <span class="kc">True</span>
    <span class="k">else</span><span class="p">:</span>
        <span class="nb">next</span> <span class="o">=</span> <span class="kc">False</span>
    <span class="k">if</span> <span class="n">prev</span> <span class="ow">or</span> <span class="nb">next</span><span class="p">:</span>
        <span class="c1"># Find the checked butto</span>
        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">7</span><span class="p">):</span>
            <span class="k">if</span> <span class="n">obj</span><span class="o">.</span><span class="n">has_btn_ctrl</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="o">.</span><span class="n">CTRL</span><span class="o">.</span><span class="n">CHECKED</span><span class="p">):</span>
                <span class="k">break</span>
        <span class="k">if</span> <span class="n">prev</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
            <span class="n">i</span><span class="o">-=</span><span class="mi">1</span>
        <span class="k">elif</span> <span class="nb">next</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">5</span><span class="p">:</span>
            <span class="n">i</span><span class="o">+=</span><span class="mi">1</span>

        <span class="n">obj</span><span class="o">.</span><span class="n">set_btn_ctrl</span><span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="o">.</span><span class="n">CTRL</span><span class="o">.</span><span class="n">CHECKED</span><span class="p">)</span>

<span class="c1">#</span>
<span class="c1"># Make a button group</span>
<span class="c1">#</span>

<span class="n">style_bg</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">style_t</span><span class="p">()</span>
<span class="n">style_bg</span><span class="o">.</span><span class="n">init</span><span class="p">()</span>
<span class="n">style_bg</span><span class="o">.</span><span class="n">set_pad_all</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="n">style_bg</span><span class="o">.</span><span class="n">set_pad_gap</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="n">style_bg</span><span class="o">.</span><span class="n">set_clip_corner</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
<span class="n">style_bg</span><span class="o">.</span><span class="n">set_radius</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">RADIUS</span><span class="o">.</span><span class="n">CIRCLE</span><span class="p">)</span>
<span class="n">style_bg</span><span class="o">.</span><span class="n">set_border_width</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>


<span class="n">style_btn</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">style_t</span><span class="p">()</span>
<span class="n">style_btn</span><span class="o">.</span><span class="n">init</span><span class="p">()</span>
<span class="n">style_btn</span><span class="o">.</span><span class="n">set_radius</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="n">style_btn</span><span class="o">.</span><span class="n">set_border_width</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="n">style_btn</span><span class="o">.</span><span class="n">set_border_opa</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">OPA</span><span class="o">.</span><span class="n">_50</span><span class="p">)</span>
<span class="n">style_btn</span><span class="o">.</span><span class="n">set_border_color</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">palette_main</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">PALETTE</span><span class="o">.</span><span class="n">GREY</span><span class="p">))</span>
<span class="n">style_btn</span><span class="o">.</span><span class="n">set_border_side</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">BORDER_SIDE</span><span class="o">.</span><span class="n">INTERNAL</span><span class="p">)</span>
<span class="n">style_btn</span><span class="o">.</span><span class="n">set_radius</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>

<span class="nb">map</span> <span class="o">=</span> <span class="p">[</span><span class="n">lv</span><span class="o">.</span><span class="n">SYMBOL</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span><span class="s2">&quot;1&quot;</span><span class="p">,</span><span class="s2">&quot;2&quot;</span><span class="p">,</span> <span class="s2">&quot;3&quot;</span><span class="p">,</span> <span class="s2">&quot;4&quot;</span><span class="p">,</span> <span class="s2">&quot;5&quot;</span><span class="p">,</span><span class="n">lv</span><span class="o">.</span><span class="n">SYMBOL</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">]</span>

<span class="n">btnm</span> <span class="o">=</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">scr_act</span><span class="p">())</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">set_map</span><span class="p">(</span><span class="nb">map</span><span class="p">)</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">add_style</span><span class="p">(</span><span class="n">style_bg</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">add_style</span><span class="p">(</span><span class="n">style_btn</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">PART</span><span class="o">.</span><span class="n">ITEMS</span><span class="p">)</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">add_event_cb</span><span class="p">(</span><span class="n">event_cb</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">EVENT</span><span class="o">.</span><span class="n">VALUE_CHANGED</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">set_size</span><span class="p">(</span><span class="mi">225</span><span class="p">,</span> <span class="mi">35</span><span class="p">)</span>

<span class="c1"># Allow selecting on one number at time</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">set_btn_ctrl_all</span><span class="p">(</span><span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="o">.</span><span class="n">CTRL</span><span class="o">.</span><span class="n">CHECKABLE</span><span class="p">)</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">clear_btn_ctrl</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="o">.</span><span class="n">CTRL</span><span class="o">.</span><span class="n">CHECKABLE</span><span class="p">)</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">clear_btn_ctrl</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="o">.</span><span class="n">CTRL</span><span class="o">.</span><span class="n">CHECKABLE</span><span class="p">)</span>

<span class="n">btnm</span><span class="o">.</span><span class="n">set_one_checked</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
<span class="n">btnm</span><span class="o">.</span><span class="n">set_btn_ctrl</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">lv</span><span class="o">.</span><span class="n">btnmatrix</span><span class="o">.</span><span class="n">CTRL</span><span class="o">.</span><span class="n">CHECKED</span><span class="p">)</span>

<span class="n">btnm</span><span class="o">.</span><span class="n">center</span><span class="p">()</span>

</pre></div>
</div>
</div>
<hr/></div>
</div>
<div class="section" id="api">
<h2>API<a class="headerlink" href="#api" title="Permalink to this headline">¶</a></h2>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p>
<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv419lv_btnmatrix_ctrl_t">
<span id="_CPPv319lv_btnmatrix_ctrl_t"></span><span id="_CPPv219lv_btnmatrix_ctrl_t"></span><span id="lv_btnmatrix_ctrl_t"></span><span class="target" id="lv__btnmatrix_8h_1a56587d4597f6b0999d3f3dde3daceaf8"></span><span class="k"><span class="pre">typedef</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_ctrl_t</span></span></span><a class="headerlink" href="#_CPPv419lv_btnmatrix_ctrl_t" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp type">
<dt class="sig sig-object cpp" id="_CPPv426lv_btnmatrix_btn_draw_cb_t">
<span id="_CPPv326lv_btnmatrix_btn_draw_cb_t"></span><span id="_CPPv226lv_btnmatrix_btn_draw_cb_t"></span><span id="lv_btnmatrix_btn_draw_cb_t"></span><span class="target" id="lv__btnmatrix_8h_1a1efc86d02254cc1065c815d79388a3c4"></span><span class="k"><span class="pre">typedef</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_btn_draw_cb_t</span></span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">(</span></span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">btnm</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">uint32_t</span></span><span class="w"> </span><span class="n"><span class="pre">btn_id</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">lv_area_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">draw_area</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">lv_area_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">clip_area</span></span><span class="p"><span class="pre">)</span></span><a class="headerlink" href="#_CPPv426lv_btnmatrix_btn_draw_cb_t" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
<dl class="cpp enum">
<dt class="sig sig-object cpp" id="_CPPv4Ut2_69">
<span id="_CPPv3Ut2_69"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbb"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">[anonymous]</span></span></span><a class="headerlink" href="#_CPPv4Ut2_69" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Type to store button control bits (disabled, hidden etc.) The first 3 bits are used to store the width </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6919_LV_BTNMATRIX_WIDTHE">
<span id="_CPPv3NUt2_6919_LV_BTNMATRIX_WIDTHE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbba2314dd72d383de022a687a231d33d930"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_LV_BTNMATRIX_WIDTH</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6919_LV_BTNMATRIX_WIDTHE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved to stire the size units </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6924LV_BTNMATRIX_CTRL_HIDDENE">
<span id="_CPPv3NUt2_6924LV_BTNMATRIX_CTRL_HIDDENE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbbaae147a0e550c0e9b856bda9f37a08a82"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_HIDDEN</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6924LV_BTNMATRIX_CTRL_HIDDENE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Button hidden </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6927LV_BTNMATRIX_CTRL_NO_REPEATE">
<span id="_CPPv3NUt2_6927LV_BTNMATRIX_CTRL_NO_REPEATE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbba8b687f1dad1968600f8e8cf81e6602cf"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_NO_REPEAT</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6927LV_BTNMATRIX_CTRL_NO_REPEATE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Do not repeat press this button. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6926LV_BTNMATRIX_CTRL_DISABLEDE">
<span id="_CPPv3NUt2_6926LV_BTNMATRIX_CTRL_DISABLEDE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbbafc839fbe893a96e6f925f1a227bca6a3"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_DISABLED</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6926LV_BTNMATRIX_CTRL_DISABLEDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Disable this button. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6927LV_BTNMATRIX_CTRL_CHECKABLEE">
<span id="_CPPv3NUt2_6927LV_BTNMATRIX_CTRL_CHECKABLEE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbba24a06bd7d16b5cabbaf93eff3fcced6b"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_CHECKABLE</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6927LV_BTNMATRIX_CTRL_CHECKABLEE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The button can be toggled. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6925LV_BTNMATRIX_CTRL_CHECKEDE">
<span id="_CPPv3NUt2_6925LV_BTNMATRIX_CTRL_CHECKEDE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbbaee59c1c5053c1a2347adc0b7ab945b02"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_CHECKED</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6925LV_BTNMATRIX_CTRL_CHECKEDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Button is currently toggled (e.g. checked). </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6928LV_BTNMATRIX_CTRL_CLICK_TRIGE">
<span id="_CPPv3NUt2_6928LV_BTNMATRIX_CTRL_CLICK_TRIGE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbba27d564c00ab0d2390d7d675762014147"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_CLICK_TRIG</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6928LV_BTNMATRIX_CTRL_CLICK_TRIGE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>1: Send LV_EVENT_VALUE_CHANGE on CLICK, 0: Send LV_EVENT_VALUE_CHANGE on PRESS </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6925LV_BTNMATRIX_CTRL_POPOVERE">
<span id="_CPPv3NUt2_6925LV_BTNMATRIX_CTRL_POPOVERE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbba8d254922bb0d6ad9561bf662bbf0fab4"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_POPOVER</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6925LV_BTNMATRIX_CTRL_POPOVERE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Show a popover when pressing this key </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6925LV_BTNMATRIX_CTRL_RECOLORE">
<span id="_CPPv3NUt2_6925LV_BTNMATRIX_CTRL_RECOLORE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbba782df8090dd41c43ac60dcd225ee818e"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_RECOLOR</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6925LV_BTNMATRIX_CTRL_RECOLORE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Enable text recoloring with <code class="docutils literal notranslate"><span class="pre">#color</span></code> </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6927_LV_BTNMATRIX_CTRL_RESERVEDE">
<span id="_CPPv3NUt2_6927_LV_BTNMATRIX_CTRL_RESERVEDE"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbba7383ff204fe5d37eb2b6aa9fe3f55f03"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_LV_BTNMATRIX_CTRL_RESERVED</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6927_LV_BTNMATRIX_CTRL_RESERVEDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for later use </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6926LV_BTNMATRIX_CTRL_CUSTOM_1E">
<span id="_CPPv3NUt2_6926LV_BTNMATRIX_CTRL_CUSTOM_1E"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbbac7d7e20136fced89552d3b525eb078a7"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_CUSTOM_1</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6926LV_BTNMATRIX_CTRL_CUSTOM_1E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Custom free to use flag </p>
</dd></dl>

<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4NUt2_6926LV_BTNMATRIX_CTRL_CUSTOM_2E">
<span id="_CPPv3NUt2_6926LV_BTNMATRIX_CTRL_CUSTOM_2E"></span><span class="target" id="lv__btnmatrix_8h_1a109bfaad92bd6d348dab484aec11edbba2a7b07b1557d7e7a09df030307418b5f"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_CTRL_CUSTOM_2</span></span></span><a class="headerlink" href="#_CPPv4NUt2_6926LV_BTNMATRIX_CTRL_CUSTOM_2E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Custom free to use flag </p>
</dd></dl>

</dd></dl>

<dl class="cpp enum">
<dt class="sig sig-object cpp" id="_CPPv429lv_btnmatrix_draw_part_type_t">
<span id="_CPPv329lv_btnmatrix_draw_part_type_t"></span><span id="_CPPv229lv_btnmatrix_draw_part_type_t"></span><span class="target" id="lv__btnmatrix_8h_1a8e8d524409c16055b61989cca981648d"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_draw_part_type_t</span></span></span><a class="headerlink" href="#_CPPv429lv_btnmatrix_draw_part_type_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p><code class="docutils literal notranslate"><span class="pre">type</span></code> field in <code class="docutils literal notranslate"><span class="pre">lv_obj_draw_part_dsc_t</span></code> if <code class="docutils literal notranslate"><span class="pre">class_p</span> <span class="pre">=</span> <span class="pre">lv_btnmatrix_class</span></code> Used in <code class="docutils literal notranslate"><span class="pre">LV_EVENT_DRAW_PART_BEGIN</span></code> and <code class="docutils literal notranslate"><span class="pre">LV_EVENT_DRAW_PART_END</span></code> </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N29lv_btnmatrix_draw_part_type_t26LV_BTNMATRIX_DRAW_PART_BTNE">
<span id="_CPPv3N29lv_btnmatrix_draw_part_type_t26LV_BTNMATRIX_DRAW_PART_BTNE"></span><span id="_CPPv2N29lv_btnmatrix_draw_part_type_t26LV_BTNMATRIX_DRAW_PART_BTNE"></span><span class="target" id="lv__btnmatrix_8h_1a8e8d524409c16055b61989cca981648daaa0f658c1e85e028cf054609577ef7cd"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LV_BTNMATRIX_DRAW_PART_BTN</span></span></span><a class="headerlink" href="#_CPPv4N29lv_btnmatrix_draw_part_type_t26LV_BTNMATRIX_DRAW_PART_BTNE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The rectangle and label of buttons </p>
</dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419LV_EXPORT_CONST_INT21LV_BTNMATRIX_BTN_NONE">
<span id="_CPPv319LV_EXPORT_CONST_INT21LV_BTNMATRIX_BTN_NONE"></span><span id="_CPPv219LV_EXPORT_CONST_INT21LV_BTNMATRIX_BTN_NONE"></span><span id="LV_EXPORT_CONST_INT__LV_BTNMATRIX_BTN_NONE"></span><span class="target" id="lv__btnmatrix_8h_1a89fb34a91eceef776ede87a88f41a186"></span><span class="sig-name descname"><span class="n"><span class="pre">LV_EXPORT_CONST_INT</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">LV_BTNMATRIX_BTN_NONE</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419LV_EXPORT_CONST_INT21LV_BTNMATRIX_BTN_NONE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv419lv_btnmatrix_createP8lv_obj_t">
<span id="_CPPv319lv_btnmatrix_createP8lv_obj_t"></span><span id="_CPPv219lv_btnmatrix_createP8lv_obj_t"></span><span id="lv_btnmatrix_create__lv_obj_tP"></span><span class="target" id="lv__btnmatrix_8h_1ab24b5b0a6f857cea0d80a8c874403921"></span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_create</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">parent</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lv_btnmatrix_createP8lv_obj_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a button matrix object </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>parent</strong> -- pointer to an object, it will be the parent of the new button matrix </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>pointer to the created button matrix </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv420lv_btnmatrix_set_mapP8lv_obj_tA_PKc">
<span id="_CPPv320lv_btnmatrix_set_mapP8lv_obj_tA_PKc"></span><span id="_CPPv220lv_btnmatrix_set_mapP8lv_obj_tA_PKc"></span><span id="lv_btnmatrix_set_map__lv_obj_tP.cCPA"></span><span class="target" id="lv__btnmatrix_8h_1ab3987d2f4338fa6194665a3924608c5a"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_set_map</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">map</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420lv_btnmatrix_set_mapP8lv_obj_tA_PKc" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a new map. Buttons will be created/deleted according to the map. The button matrix keeps a reference to the map and so the string array must not be deallocated during the life of the matrix. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to a button matrix object </p></li>
<li><p><strong>map</strong> -- pointer a string array. The last string has to be: &quot;&quot;. Use &quot;\n&quot; to make a line break. </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv425lv_btnmatrix_set_ctrl_mapP8lv_obj_tA_K19lv_btnmatrix_ctrl_t">
<span id="_CPPv325lv_btnmatrix_set_ctrl_mapP8lv_obj_tA_K19lv_btnmatrix_ctrl_t"></span><span id="_CPPv225lv_btnmatrix_set_ctrl_mapP8lv_obj_tA_K19lv_btnmatrix_ctrl_t"></span><span id="lv_btnmatrix_set_ctrl_map__lv_obj_tP.lv_btnmatrix_ctrl_tCA"></span><span class="target" id="lv__btnmatrix_8h_1a2a5c44579692e36a2cf74ac2c23f8d88"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_set_ctrl_map</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv419lv_btnmatrix_ctrl_t" title="lv_btnmatrix_ctrl_t"><span class="n"><span class="pre">lv_btnmatrix_ctrl_t</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">ctrl_map</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425lv_btnmatrix_set_ctrl_mapP8lv_obj_tA_K19lv_btnmatrix_ctrl_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the button control map (hidden, disabled etc.) for a button matrix. The control map array will be copied and so may be deallocated after this function returns. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to a button matrix object </p></li>
<li><p><strong>ctrl_map</strong> -- pointer to an array of <code class="docutils literal notranslate"><span class="pre">lv_btn_ctrl_t</span></code> control bytes. The length of the array and position of the elements must match the number and order of the individual buttons (i.e. excludes newline entries). An element of the map should look like e.g.: <code class="docutils literal notranslate"><span class="pre">ctrl_map[0]</span> <span class="pre">=</span> <span class="pre">width</span> <span class="pre">|</span> <span class="pre">LV_BTNMATRIX_CTRL_NO_REPEAT</span> <span class="pre">|</span> <span class="pre">LV_BTNMATRIX_CTRL_TGL_ENABLE</span></code> </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv429lv_btnmatrix_set_selected_btnP8lv_obj_t8uint16_t">
<span id="_CPPv329lv_btnmatrix_set_selected_btnP8lv_obj_t8uint16_t"></span><span id="_CPPv229lv_btnmatrix_set_selected_btnP8lv_obj_t8uint16_t"></span><span id="lv_btnmatrix_set_selected_btn__lv_obj_tP.uint16_t"></span><span class="target" id="lv__btnmatrix_8h_1ac887783607642c29fdcc31b34da7ed10"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_set_selected_btn</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">btn_id</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429lv_btnmatrix_set_selected_btnP8lv_obj_t8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the selected buttons </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to button matrix object </p></li>
<li><p><strong>btn_id</strong> -- 0 based index of the button to modify. (Not counting new lines) </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv425lv_btnmatrix_set_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t">
<span id="_CPPv325lv_btnmatrix_set_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t"></span><span id="_CPPv225lv_btnmatrix_set_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t"></span><span id="lv_btnmatrix_set_btn_ctrl__lv_obj_tP.uint16_t.lv_btnmatrix_ctrl_t"></span><span class="target" id="lv__btnmatrix_8h_1a5dc6dae51c983371337b415f2330c71c"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_set_btn_ctrl</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">btn_id</span></span>, <a class="reference internal" href="#_CPPv419lv_btnmatrix_ctrl_t" title="lv_btnmatrix_ctrl_t"><span class="n"><span class="pre">lv_btnmatrix_ctrl_t</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">ctrl</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425lv_btnmatrix_set_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the attributes of a button of the button matrix </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to button matrix object </p></li>
<li><p><strong>btn_id</strong> -- 0 based index of the button to modify. (Not counting new lines) </p></li>
<li><p><strong>ctrl</strong> -- OR-ed attributs. E.g. <code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_NO_REPEAT</span> <span class="pre">|</span> <span class="pre">LV_BTNMATRIX_CTRL_CHECKABLE</span></code> </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv427lv_btnmatrix_clear_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t">
<span id="_CPPv327lv_btnmatrix_clear_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t"></span><span id="_CPPv227lv_btnmatrix_clear_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t"></span><span id="lv_btnmatrix_clear_btn_ctrl__lv_obj_tP.uint16_t.lv_btnmatrix_ctrl_t"></span><span class="target" id="lv__btnmatrix_8h_1aee9602dad4ae1b66a433202efe87816a"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_clear_btn_ctrl</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">btn_id</span></span>, <a class="reference internal" href="#_CPPv419lv_btnmatrix_ctrl_t" title="lv_btnmatrix_ctrl_t"><span class="n"><span class="pre">lv_btnmatrix_ctrl_t</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">ctrl</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427lv_btnmatrix_clear_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Clear the attributes of a button of the button matrix </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to button matrix object </p></li>
<li><p><strong>btn_id</strong> -- 0 based index of the button to modify. (Not counting new lines) </p></li>
<li><p><strong>ctrl</strong> -- OR-ed attributs. E.g. <code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_NO_REPEAT</span> <span class="pre">|</span> <span class="pre">LV_BTNMATRIX_CTRL_CHECKABLE</span></code> </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv429lv_btnmatrix_set_btn_ctrl_allP8lv_obj_t19lv_btnmatrix_ctrl_t">
<span id="_CPPv329lv_btnmatrix_set_btn_ctrl_allP8lv_obj_t19lv_btnmatrix_ctrl_t"></span><span id="_CPPv229lv_btnmatrix_set_btn_ctrl_allP8lv_obj_t19lv_btnmatrix_ctrl_t"></span><span id="lv_btnmatrix_set_btn_ctrl_all__lv_obj_tP.lv_btnmatrix_ctrl_t"></span><span class="target" id="lv__btnmatrix_8h_1afb072278ff0042eac694f0139cf5451e"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_set_btn_ctrl_all</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <a class="reference internal" href="#_CPPv419lv_btnmatrix_ctrl_t" title="lv_btnmatrix_ctrl_t"><span class="n"><span class="pre">lv_btnmatrix_ctrl_t</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">ctrl</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429lv_btnmatrix_set_btn_ctrl_allP8lv_obj_t19lv_btnmatrix_ctrl_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set attributes of all buttons of a button matrix </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to a button matrix object </p></li>
<li><p><strong>ctrl</strong> -- attribute(s) to set from <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_ctrl_t</span></code>. Values can be ORed. </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv431lv_btnmatrix_clear_btn_ctrl_allP8lv_obj_t19lv_btnmatrix_ctrl_t">
<span id="_CPPv331lv_btnmatrix_clear_btn_ctrl_allP8lv_obj_t19lv_btnmatrix_ctrl_t"></span><span id="_CPPv231lv_btnmatrix_clear_btn_ctrl_allP8lv_obj_t19lv_btnmatrix_ctrl_t"></span><span id="lv_btnmatrix_clear_btn_ctrl_all__lv_obj_tP.lv_btnmatrix_ctrl_t"></span><span class="target" id="lv__btnmatrix_8h_1a7f3ec532d602c0df4cbc910f5f402147"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_clear_btn_ctrl_all</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <a class="reference internal" href="#_CPPv419lv_btnmatrix_ctrl_t" title="lv_btnmatrix_ctrl_t"><span class="n"><span class="pre">lv_btnmatrix_ctrl_t</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">ctrl</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431lv_btnmatrix_clear_btn_ctrl_allP8lv_obj_t19lv_btnmatrix_ctrl_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Clear the attributes of all buttons of a button matrix </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to a button matrix object </p></li>
<li><p><strong>ctrl</strong> -- attribute(s) to set from <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_ctrl_t</span></code>. Values can be ORed. </p></li>
<li><p><strong>en</strong> -- true: set the attributes; false: clear the attributes </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv426lv_btnmatrix_set_btn_widthP8lv_obj_t8uint16_t7uint8_t">
<span id="_CPPv326lv_btnmatrix_set_btn_widthP8lv_obj_t8uint16_t7uint8_t"></span><span id="_CPPv226lv_btnmatrix_set_btn_widthP8lv_obj_t8uint16_t7uint8_t"></span><span id="lv_btnmatrix_set_btn_width__lv_obj_tP.uint16_t.uint8_t"></span><span class="target" id="lv__btnmatrix_8h_1a15f65df093de0b3fccdff6aa804cb63a"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_set_btn_width</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">btn_id</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">width</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426lv_btnmatrix_set_btn_widthP8lv_obj_t8uint16_t7uint8_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a single button's relative width. This method will cause the matrix be regenerated and is a relatively expensive operation. It is recommended that initial width be specified using <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_set_ctrl_map</span></code> and this method only be used for dynamic changes. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to button matrix object </p></li>
<li><p><strong>btn_id</strong> -- 0 based index of the button to modify. </p></li>
<li><p><strong>width</strong> -- relative width compared to the buttons in the same row. [1..7] </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv428lv_btnmatrix_set_one_checkedP8lv_obj_tb">
<span id="_CPPv328lv_btnmatrix_set_one_checkedP8lv_obj_tb"></span><span id="_CPPv228lv_btnmatrix_set_one_checkedP8lv_obj_tb"></span><span id="lv_btnmatrix_set_one_checked__lv_obj_tP.b"></span><span class="target" id="lv__btnmatrix_8h_1a634e7f994d4d6d8551cacccc58b094d9"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_set_one_checked</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">en</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428lv_btnmatrix_set_one_checkedP8lv_obj_tb" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Make the button matrix like a selector widget (only one button may be checked at a time). <code class="docutils literal notranslate"><span class="pre">LV_BTNMATRIX_CTRL_CHECKABLE</span></code> must be enabled on the buttons to be selected using <code class="docutils literal notranslate"><span class="pre">lv_btnmatrix_set_ctrl()</span></code> or <code class="docutils literal notranslate"><a class="reference internal" href="#lv__btnmatrix_8h_1afb072278ff0042eac694f0139cf5451e"><span class="std std-ref"><span class="pre">lv_btnmatrix_set_btn_ctrl_all()</span></span></a></code>. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to a button matrix object </p></li>
<li><p><strong>en</strong> -- whether &quot;one check&quot; mode is enabled </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv420lv_btnmatrix_get_mapPK8lv_obj_t">
<span id="_CPPv320lv_btnmatrix_get_mapPK8lv_obj_t"></span><span id="_CPPv220lv_btnmatrix_get_mapPK8lv_obj_t"></span><span id="lv_btnmatrix_get_map__lv_obj_tCP"></span><span class="target" id="lv__btnmatrix_8h_1af5256815042e67d4934bd503893a404c"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_get_map</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420lv_btnmatrix_get_mapPK8lv_obj_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the current map of a button matrix </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> -- pointer to a button matrix object </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>the current map </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv429lv_btnmatrix_get_selected_btnPK8lv_obj_t">
<span id="_CPPv329lv_btnmatrix_get_selected_btnPK8lv_obj_t"></span><span id="_CPPv229lv_btnmatrix_get_selected_btnPK8lv_obj_t"></span><span id="lv_btnmatrix_get_selected_btn__lv_obj_tCP"></span><span class="target" id="lv__btnmatrix_8h_1ab597f57b85824b31003b4ed6e0d4cfa6"></span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_get_selected_btn</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429lv_btnmatrix_get_selected_btnPK8lv_obj_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the index of the lastly &quot;activated&quot; button by the user (pressed, released, focused etc) Useful in the <code class="docutils literal notranslate"><span class="pre">event_cb</span></code> to get the text of the button, check if hidden etc. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> -- pointer to button matrix object </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>index of the last released button (LV_BTNMATRIX_BTN_NONE: if unset) </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv425lv_btnmatrix_get_btn_textPK8lv_obj_t8uint16_t">
<span id="_CPPv325lv_btnmatrix_get_btn_textPK8lv_obj_t8uint16_t"></span><span id="_CPPv225lv_btnmatrix_get_btn_textPK8lv_obj_t8uint16_t"></span><span id="lv_btnmatrix_get_btn_text__lv_obj_tCP.uint16_t"></span><span class="target" id="lv__btnmatrix_8h_1a9042f12a37a035f93a525a1802bf71fb"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_get_btn_text</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">btn_id</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425lv_btnmatrix_get_btn_textPK8lv_obj_t8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the button's text </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to button matrix object </p></li>
<li><p><strong>btn_id</strong> -- the index a button not counting new line characters. </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>text of btn_index` button </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv425lv_btnmatrix_has_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t">
<span id="_CPPv325lv_btnmatrix_has_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t"></span><span id="_CPPv225lv_btnmatrix_has_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t"></span><span id="lv_btnmatrix_has_btn_ctrl__lv_obj_tP.uint16_t.lv_btnmatrix_ctrl_t"></span><span class="target" id="lv__btnmatrix_8h_1ac0b8b7511e2746f05b690add7e16dbb0"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_has_btn_ctrl</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span>, <span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">btn_id</span></span>, <a class="reference internal" href="#_CPPv419lv_btnmatrix_ctrl_t" title="lv_btnmatrix_ctrl_t"><span class="n"><span class="pre">lv_btnmatrix_ctrl_t</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">ctrl</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425lv_btnmatrix_has_btn_ctrlP8lv_obj_t8uint16_t19lv_btnmatrix_ctrl_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the whether a control value is enabled or disabled for button of a button matrix </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> -- pointer to a button matrix object </p></li>
<li><p><strong>btn_id</strong> -- the index of a button not counting new line characters. </p></li>
<li><p><strong>ctrl</strong> -- control values to check (ORed value can be used) </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true: the control attribute is enabled false: disabled </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv428lv_btnmatrix_get_one_checkedPK8lv_obj_t">
<span id="_CPPv328lv_btnmatrix_get_one_checkedPK8lv_obj_t"></span><span id="_CPPv228lv_btnmatrix_get_one_checkedPK8lv_obj_t"></span><span id="lv_btnmatrix_get_one_checked__lv_obj_tCP"></span><span class="target" id="lv__btnmatrix_8h_1a907416cec7d5617694781d135f24c18c"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_get_one_checked</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">obj</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428lv_btnmatrix_get_one_checkedPK8lv_obj_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Tell whether &quot;one check&quot; mode is enabled or not. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> -- Button matrix object </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true: &quot;one check&quot; mode is enabled; false: disabled </p>
</dd>
</dl>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-variables">Variables</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv418lv_btnmatrix_class">
<span id="_CPPv318lv_btnmatrix_class"></span><span id="_CPPv218lv_btnmatrix_class"></span><span id="lv_btnmatrix_class__lv_obj_class_tC"></span><span class="target" id="lv__btnmatrix_8h_1aeb8c4b9564fd7745c49cb854b9f97735"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">lv_obj_class_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_class</span></span></span><a class="headerlink" href="#_CPPv418lv_btnmatrix_class" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv414lv_btnmatrix_t">
<span id="_CPPv314lv_btnmatrix_t"></span><span id="_CPPv214lv_btnmatrix_t"></span><span id="lv_btnmatrix_t"></span><span class="target" id="structlv__btnmatrix__t"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">lv_btnmatrix_t</span></span></span><a class="headerlink" href="#_CPPv414lv_btnmatrix_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N14lv_btnmatrix_t3objE">
<span id="_CPPv3N14lv_btnmatrix_t3objE"></span><span id="_CPPv2N14lv_btnmatrix_t3objE"></span><span id="lv_btnmatrix_t::obj__lv_obj_t"></span><span class="target" id="structlv__btnmatrix__t_1a7396366477c5ee77ab0e9af1e827b795"></span><a class="reference internal" href="../obj.html#_CPPv48lv_obj_t" title="lv_obj_t"><span class="n"><span class="pre">lv_obj_t</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">obj</span></span></span><a class="headerlink" href="#_CPPv4N14lv_btnmatrix_t3objE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N14lv_btnmatrix_t5map_pE">
<span id="_CPPv3N14lv_btnmatrix_t5map_pE"></span><span id="_CPPv2N14lv_btnmatrix_t5map_pE"></span><span id="lv_btnmatrix_t::map_p__cCPP"></span><span class="target" id="structlv__btnmatrix__t_1a33b1a3da68197f846dc18913c47ee3ee"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">map_p</span></span></span><a class="headerlink" href="#_CPPv4N14lv_btnmatrix_t5map_pE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N14lv_btnmatrix_t12button_areasE">
<span id="_CPPv3N14lv_btnmatrix_t12button_areasE"></span><span id="_CPPv2N14lv_btnmatrix_t12button_areasE"></span><span id="lv_btnmatrix_t::button_areas__lv_area_tP"></span><span class="target" id="structlv__btnmatrix__t_1a9a3e40816f9c98919abaeef3ee1bc856"></span><span class="n"><span class="pre">lv_area_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">button_areas</span></span></span><a class="headerlink" href="#_CPPv4N14lv_btnmatrix_t12button_areasE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N14lv_btnmatrix_t9ctrl_bitsE">
<span id="_CPPv3N14lv_btnmatrix_t9ctrl_bitsE"></span><span id="_CPPv2N14lv_btnmatrix_t9ctrl_bitsE"></span><span id="lv_btnmatrix_t::ctrl_bits__lv_btnmatrix_ctrl_tP"></span><span class="target" id="structlv__btnmatrix__t_1ab865ffddd2801c2ba943368a6b7bbcf1"></span><a class="reference internal" href="#_CPPv419lv_btnmatrix_ctrl_t" title="lv_btnmatrix_ctrl_t"><span class="n"><span class="pre">lv_btnmatrix_ctrl_t</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">ctrl_bits</span></span></span><a class="headerlink" href="#_CPPv4N14lv_btnmatrix_t9ctrl_bitsE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N14lv_btnmatrix_t7btn_cntE">
<span id="_CPPv3N14lv_btnmatrix_t7btn_cntE"></span><span id="_CPPv2N14lv_btnmatrix_t7btn_cntE"></span><span id="lv_btnmatrix_t::btn_cnt__uint16_t"></span><span class="target" id="structlv__btnmatrix__t_1a1331ad834db4e8fc6cb74e35b1348904"></span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">btn_cnt</span></span></span><a class="headerlink" href="#_CPPv4N14lv_btnmatrix_t7btn_cntE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N14lv_btnmatrix_t7row_cntE">
<span id="_CPPv3N14lv_btnmatrix_t7row_cntE"></span><span id="_CPPv2N14lv_btnmatrix_t7row_cntE"></span><span id="lv_btnmatrix_t::row_cnt__uint16_t"></span><span class="target" id="structlv__btnmatrix__t_1a427d6ebfb3bd75b0af4c19848755542c"></span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">row_cnt</span></span></span><a class="headerlink" href="#_CPPv4N14lv_btnmatrix_t7row_cntE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N14lv_btnmatrix_t10btn_id_selE">
<span id="_CPPv3N14lv_btnmatrix_t10btn_id_selE"></span><span id="_CPPv2N14lv_btnmatrix_t10btn_id_selE"></span><span id="lv_btnmatrix_t::btn_id_sel__uint16_t"></span><span class="target" id="structlv__btnmatrix__t_1a8c603aac385ca527a7f8c7ec2e4ba250"></span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">btn_id_sel</span></span></span><a class="headerlink" href="#_CPPv4N14lv_btnmatrix_t10btn_id_selE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N14lv_btnmatrix_t9one_checkE">
<span id="_CPPv3N14lv_btnmatrix_t9one_checkE"></span><span id="_CPPv2N14lv_btnmatrix_t9one_checkE"></span><span id="lv_btnmatrix_t::one_check__uint8_t"></span><span class="target" id="structlv__btnmatrix__t_1a8c3b78171bd12621bdb6edd9dc5ec570"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">one_check</span></span></span><a class="headerlink" href="#_CPPv4N14lv_btnmatrix_t9one_checkE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

</div>
</div>


           </div>
           
          </div>
          <footer>
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
        <a href="canvas.html" class="btn btn-neutral float-right" title="Canvas (lv_canvas)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
        <a href="btn.html" class="btn btn-neutral float-left" title="Button (lv_btn)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>
        &#169; Copyright 2021, LVGL Kft.
      <span class="lastupdated">
        Last updated on Jan 31, 2022.
      </span>

    </p>
  </div>
    
    
    
    Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    
    provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
  

<style>
  .wy-side-nav-search > div[role="search"] {
    color: black;
  }
</style>
 <script type="text/javascript">
    $(document).ready(function() {
        $(".toggle > *").hide();
        $(".toggle .header").show();
        $(".toggle .header").click(function() {
            $(this).parent().children().not(".header").toggle(400);
            $(this).parent().children(".header").toggleClass("open");
        })
    });
</script>

<script type="text/javascript">
function add_version_selector()
{
    return fetch("https://raw.githubusercontent.com/lvgl/docs_compiled/gh-pages/versionlist.txt")
        .then(res => res.text())
        .then(text => {
            const versions = text.split("\n").filter(version => version.trim().length > 0);
            let p = document.getElementById("rtd-search-form").parentElement;
            p.innerHTML = `
            <select name="versions" id="versions" onchange="ver_sel()" style="border-radius:5px; margin-bottom:15px">
            ${versions.map(version => {
                let versionName = "";  
                if(version == "master") versionName = "master (latest)";
                else versionName = "v" + ((version.indexOf(".") != -1) ? version : (version + " (latest minor)"));
                return `<option value="${version}">${versionName}</option>`;
            })}
            </select>` + p.innerHTML;
        });
}

function ver_sel()
{
  var x = document.getElementById("versions").value;
  window.location.href = window.location.protocol + "//" + window.location.host + "/" + x + "/";
}

document.addEventListener('DOMContentLoaded', (event) => {
    add_version_selector().then(() => {
        var value = window.location.pathname.split('/')[1];
        document.getElementById("versions").value = value;
    });
    
})
document.addEventListener('DOMContentLoaded', (event) => {
    function onIntersection(entries) {
        entries.forEach(entry => {
            let currentlyLoaded = entry.target.getAttribute("data-is-loaded") == "true";
            let shouldBeLoaded = entry.intersectionRatio > 0;
            if(currentlyLoaded != shouldBeLoaded) {
                entry.target.setAttribute("data-is-loaded", shouldBeLoaded);
                if(shouldBeLoaded) {
                    let iframe = document.createElement("iframe");
                    iframe.src = entry.target.getAttribute("data-real-src");
                    entry.target.appendChild(iframe);
                } else {
                    let iframe = entry.target.querySelector("iframe");
                    iframe.parentNode.removeChild(iframe);
                }
            }
        });
    }
    const config = {
        rootMargin: '600px 0px',
        threshold: 0.01
    };
    let observer = new IntersectionObserver(onIntersection, config);
    document.querySelectorAll(".lv-example").forEach(iframe => {
        observer.observe(iframe);
    });
});
</script>


</body>
</html>